Package-level declarations

Types

Link copied to clipboard

Where the internal ports of a peer service's nodes are: the seeds a node calls a peer at, its sagas' synchronous calls and its typed clients alike. Wow brings dns (the default: DNS SRV records, as Elasticsearch finds its seeds) and static (wow.peers.<context>.url alone); a community provider (Consul, the Kubernetes API) is found as a me.ahoo.wow.spi.transport.TransportProvider is: on the classpath (ServiceLoader, from META-INF/services/me.ahoo.wow.spi.peer.PeerDiscovery) and among the application's beans, configured by the keys under wow.peer.<type> it declares (options).

Link copied to clipboard
class PeerDiscoveryConfig @InternalWowApi constructor(val type: String, val options: Map<String, String> = emptyMap(), val resources: StoreResources = StoreResources.NONE)

What a PeerDiscovery opens its targets from: its type, its own settings (options, each key relative to wow.peer.<type>, name-template say) and the application's resources.

Link copied to clipboard

One open discovery: the internal ports of a peer's nodes, in no particular order, which the client rotates through and fails over between. A target is the base URL of a node's internal port, http://host:port; a peer whose nodes advertise their pod IPs may be found by names that resolve to them, so a target is compared with a member's address by its resolved IP, never by its text.