Implementing Microservices with Scale and Akka
summary
Shows how Scala and Akka Persistence + CQRS implement microservices as bounded contexts owning an event journal and a separate read model, with aggregates as persistent actors and process managers for multi-step flows. Recommends publishing domain events to a central topics bus (Kafka/RabbitMQ or REST feed) and turning events into local commands instead of directly calling other services. Demonstrates Play for HTTP endpoints, cites 12–20 ms responsive command roundtrips, a 2400‑node Akka cluster example, and a practical deployment of 35–50 microservices from bounded contexts.
AI-written summary · about
chapters (28)
- 0:00Intro
- 1:48INDUSTRY OF EXTREMES
- 2:31WHY ACID? HOW DID BUSINESS WORK BEFORE
- 4:41EXTREME: SERVICE SIZE MONOLITH MICRO
- 9:44THINK INFRA- STRUCTURE
- 10:15PRACTICAL?
- 11:35BUILDING MICROSERVICES
- 12:22WHAT IS THE SIZE OF A BOUNDED CONTEXT?
- 12:33SHOULD IT HAVE JUST ONE ENTITY TYPE?
- 13:03ASK YOUR UBIQUITOUS LANGUAGE
- 14:41LINGUISTIC COMPONENTS ARE COHESIVE
- 17:27LARGER THAN ONE ENTITY FAR SMALLER THAN A MONOLITH
- 17:50UBIQUITOUS LANGUAGE IS GREATER THAN ENTITY NAMES
- 18:08UBIQUITOUS LANGUAGE INCLUDES ENTITIES / COMMAND MESSAGES / EVENT MESSAGES
- 19:28MICROSERVICE DATABASE(S)
- 20:46QUERY MODEL
- 21:27ACTORS ARE ASYNCHRONOUS SERVICES
- 24:19RAPIDS: PUBLISH EVERY EVENT
- 25:26HIGH-PERFORMANCE BUS REST (ATOM) KAFKA RABBITMO
- 28:25PONDS: AGGREGATE ACTOR STATES
- 28:56ACTORS EMIT EVENTS TO RAPIDS
- 31:18RESILIENT PARENT CRASH DETECTION, NOT CLIENT
- 33:14MESSAGE DRIVEN ACTORS ARE MESSAGE DRIVEN RAPIDS ARE MESSAGE DRIVEN
- 33:32HOW TO IMPLEMENT MICROSERVICES SCALA & AKKA
- 35:50SERVICE START UP (THE CODE)
- 39:55PROCESS MANAGER WHEN NEEDED. OTHERWISE DON'T
- 43:44ACTOR AGGREGATE (THE CODE)
- 45:06TOPICS FEEDER (THE CODE)
related talks
44mLong-lived microservices
48mThe three paths of Scaling with Akka
58mImplementing Event-driven Microservices
55mExperience report on using Akka in production: pitfalls and rewards
44mBuilding event-driven microservices with Scala and Functional Domain Models
37mBeyond Microservices: Streams, State & Scalability
49mChallenges in Implementing Microservices
48mChallenges in Implementing MicroServices
