PeerDiscovery

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).

Experimental: owner-direct routing (calling the node that owns an aggregate, a 10.x candidate) may need the peers' membership and partition owners from it.

Properties

Link copied to clipboard

Every setting it reads from PeerDiscoveryConfig.options, each read through its option, for the host to bind and check (wow.peer.<type>.<key>): a key it does not declare fails the start.

Link copied to clipboard
abstract val type: String

The type wow.peer.discovery names: lowercase, unique among the providers of a node.

Functions

Link copied to clipboard
abstract fun open(config: PeerDiscoveryConfig): PeerTargets

Opens the discovery config configures.