Shifting Gears: From Events to Event-Driven • Ryan Cormack • GOTO 2024

Learn how to transform monolithic systems into event-driven architectures through incremental changes, cross-team alignment, and proven patterns. Practical insights for successful migrations.

Key takeaways
  • Event-driven architectures (EDAs) help build systems with low temporal coupling, allowing services to work independently without strict dependencies

  • Moving to event-driven requires more than just technical changes - it needs alignment across product, engineering and business teams through shared understanding and communication

  • Start small with “minimum viable migrations” - identify bounded contexts and make incremental changes rather than big bang transformations

  • Events should represent business facts and state changes, not internal implementation details or database schema changes. Events are a contract and should not have breaking changes

  • Use event storming workshops with cross-functional teams to model business processes and identify event boundaries and patterns

  • The cloud provides many managed services that help build event-driven systems cost-effectively, with pay-per-use pricing and built-in scalability

  • Build isolated systems that can evolve independently - new features should be able to consume events without impacting existing core services

  • Focus on asynchronous communication patterns and queue-based architectures to handle failure scenarios gracefully

  • Implement proper monitoring, observability and documentation around events to build trust and understanding across teams

  • Share knowledge and patterns across teams but allow independent implementation within bounded contexts - empower teams while maintaining consistency

  • Consider cost and reliability as key features - design systems to only run and scale when needed while maintaining resilience

  • Events can have multiple consumers but producers shouldn’t need to know about them - this enables flexible system evolution