Why you should attend?

  • Practical know how

    A practical Reactive Event Sourcing with Akka workshop that will give you ready-to-use production solutions and ES theory background. Apart from learning the theory, you will really put your hands on the code. Exercises are not trivial and try to simulate production use-cases and problems.

  • Useful tech stack

    Reactive Event Sourcing workshop is based on the advanced and modern reactive stack, mainly: Akka Persistence, Akka Sharding, Akka Cluster, Akka Streams. It could be performed with Scala or Java language. It's not only about the stack but also about changing your mindset and thinking about events when designing an ES based system.

  • When?

    Coming soon. Join the mailing list to find out first about the date and details.

  • How to join?

    Want to learn ES with Akka in practice? Write at academy@softwaremill.com with your needs and we’ll create a dedicated workshop plan for you and your team.

Agenda

  • See the Agenda

    Intro (optional)

    1. Why Reactive
    2. Reactive Microservices
      • isolation of state, space, time, failure
      • reactive microservices patterns
    3. Consistency, Availability, Scalability
      • performance vs scalability
      • strong consistency vs eventual consistency
      • contention and Amdahl's Law
      • coherency and Gunther's Law
      • sharding
      • CRDTs
    4. Messaging and Coordination
      • synchronous vs asynchronous messaging
      • delivery guarantees
    5. Actor model
      • theory
      • Akka stack summary
      • Actor System
      • Actor basics
      • Testing Actors
      • Actor lifecycle
      • Fault tolerance

    Workshop (80% coding, 20% theory)

    1. Event Sourcing
      • pros and cons of message driven vs event driven & event first approach
      • CQRS
      • different types of ES implementations
      • Command Sourcing
      • Event Collaboration
      • consistency, availability, scalability in ES
    2. Challenges with distributed ES implementation
      • storage consistency
      • single writer principle
    3. Akka Persistence
      • basic concepts
      • architecture
      • domain separation
    4. Aggregate implementation
      • basic domain flow: command -> aggregate -> events
      • basic application flow: service -> persistent actor -> aggregate -> DB
      • persistent actor state
      • domain API
      • persistent actor API
    5. Deduplication
      • at-most-once deduplication
      • exactly-once deduplication
    6. Read path in ES: querying persistent actor state
    7. Persistent actor recovery path
    8. Domain validation
    9. Events enrichment
    10. Projections
      • Akka Persistence: Query configuration and tagging
      • CQRS in ES implementation
      • reactive projections
    11. Serialization
      • serialization strategies
      • schema evolution: backward compatibility & forward compatibility
    12. Akka Cluster
      • basic setup
      • split brain
      • deployment strategies
    13. Akka Persistence Cassandra journal
      • this could be also SQL, DynamoDB, Couchbase journal
      • eventual consistency
    14. Akka Typed: Akka Persistence vs Akka Persistence Typed implementation
    15. Multi aggregate transactions with Saga Pattern
      • choreography
      • orchestration

    Read moreDetails

Trainer

  • Andrzej Ludwikowski

Andrzej Ludwikowski - trainer

  • “We discuss useful design patterns and focus on ES in the context of ensuring system responsiveness.”

Join the SoftwareMill Academy crowd

Stay informed about the training dates and tech bites on ES