Skip to content

ClusterClient — talk into the cluster from outside #86

@pathosDev

Description

@pathosDev

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions