Cluster, Streams, Typed Akka & Where It Fits
Akka Cluster & Location Transparency
Akka Cluster lets multiple ActorSystems on different machines form one logical cluster, with actors communicating across node boundaries. Location transparency means the same actor reference and messaging API work whether the target actor is local or remote — calling code doesn't need to know or care.
Akka Streams & HTTP
Akka Streams implements Reactive Streams, providing composable operators with built-in backpressure so a fast producer doesn't overwhelm a slower consumer. Akka HTTP builds on Streams and Actors for HTTP client/server functionality, letting web layers share the same concurrency and streaming foundation as the rest of an Akka application.
Akka Persistence
Stateful actors can persist state via event sourcing — storing a durable, ordered log of events rather than just current state — so an actor's state survives a crash or restart by replaying that log.
Akka Typed
Classic Akka actors accept Any-typed messages, so a mismatch only surfaces at runtime. Akka Typed encodes an actor's accepted message protocol in its type, letting the compiler catch mismatches between what an actor is designed to handle and what's actually sent to it.
Delivery Guarantees & Where Akka Fits
Classic Akka messaging is at-most-once by default — a message can be lost without automatic retry, so applications needing guaranteed delivery build acknowledgment/retry logic or use Akka Persistence on top. Akka fits high-throughput, resilience-demanding domains — trading platforms, real-time bidding, IoT, telecom-adjacent systems — aligning with the Reactive Manifesto's responsive/resilient/elastic/message-driven principles, at the cost of a genuine learning curve shifting from conventional lock-based concurrency to message-passing design.
Keep your own version of these notes — editable, searchable, and organised by your stack.
Start free