Today, every component that wants to send messages to actors in the cluster has to be a cluster member itself — running the gossip protocol, occupying a slot in membership, contributing to leader election. Akka offers `ClusterClient` for the case where you want a lightweight outsider (edge service, batch script, mobile gateway) that can tell the cluster but isn't part of it.
Scope:
- New `ClusterClient` extension. Constructor takes a list of contact-point addresses (well-known cluster nodes).
- The client maintains a TCP connection to one contact point at a time, reconnecting on failure.
- Provides a single API: `client.tell(targetPath, message)` — forwards the envelope through the contact point, which dispatches it to the right node within the cluster.
- The client does NOT participate in gossip, leader election, or sharding.
- The receive side runs on a dedicated `ClusterClientReceptionist` cluster extension on every cluster member; contact points accept incoming envelopes from clients and deliver to local actors.
Use cases:
- Edge service that publishes events into the cluster but doesn't host actors.
- CI / test harness that drives the cluster.
- Mobile / web gateway that doesn't want the operational complexity of being a cluster member.
Out of scope: authentication / TLS — separate concerns, can be added later via a connector layer.
Estimate: 3-4 days.
Today, every component that wants to send messages to actors in the cluster has to be a cluster member itself — running the gossip protocol, occupying a slot in membership, contributing to leader election. Akka offers `ClusterClient` for the case where you want a lightweight outsider (edge service, batch script, mobile gateway) that can tell the cluster but isn't part of it.
Scope:
Use cases:
Out of scope: authentication / TLS — separate concerns, can be added later via a connector layer.
Estimate: 3-4 days.