Would exposing the BuddyGroup in the RuntimeConfig suffise? It would have a reference to the data owner as well as the list of buddies. The primary buddy is the first buddy in the list; perhaps a convenience method
Address getPrimaryBuddy() { return buddies.get(0); }
Sure, that should do it. +1 on the convenience method -- give us freedom to change how things work later without breaking callers.
Is the BuddyGroup immutable? Should be if we're exposing it. (Sorry, I'm being lazy.)
Not immutable. +1 on making it immutable though.
Been reading Goetz's book, have we? ;)