We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
How Event Driven Architectures Go Wrong & How to Fix Them • Matthew Meckes • GOTO 2024
Explore common pitfalls in Event-Driven Architecture and learn practical solutions for better event design, team collaboration, and system implementation.
-
Common anti-patterns in Event-Driven Architecture (EDA):
- YOLO events: Publishing events without proper design or consideration
- Inside-out events: Leaking implementation details across boundaries
- Pinball events: Excessive event bouncing within domains
- God events: Overloaded events containing too much information
- Sparse events: Events with insufficient information
-
Best Practices for EDA:
- Use RFC process for event schema approval
- Create events from bounded contexts
- Break down events by types (domain events vs state transfer events)
- Implement anti-corruption layers for legacy system integration
- Maintain proper documentation and standards
-
Design Recommendations:
- Start with smaller, sparse events and grow as needed
- Split metadata from event data
- Use domain-driven design principles
- Create clear boundaries between bounded contexts
- Document architecture decisions and reasoning
-
Organizational Considerations:
- Enable small teams to work independently
- Balance between team autonomy and cross-organization standards
- Invest in shared tooling and platforms
- Focus on effective communication between teams
- Implement proper observability and monitoring
-
Implementation Guidelines:
- Don’t be afraid to use orchestration when needed
- Plan for versioning from the start
- Handle idempotency in event processing
- Use proper event naming conventions
- Consider event schema standardization across the organization
-
Common Challenges:
- Managing semantic coupling between services
- Handling duplicate events and ordering
- Balancing between decoupling and complexity
- Managing breaking changes across consumers
- Maintaining consistency in event schemas