Presentation: Event-Driven Patterns for Cloud-Native Banking - What Works, What Hurts?
Summary
Chris Tacey-Green, Head of Engineering at Investec, discusses event-driven architecture patterns for cloud-native banking in highly regulated environments. He explains the fundamental differences between commands and events, emphasizing events as state changes without expected responses. The presentation highlights key benefits such as system decoupling, creation of immutable activity logs, efficient event fan-out, and enhanced fault tolerance through multi-level retry mechanisms and dead-letter queues. Tacey-Green also covers challenges, including the difficulty for engineers to adapt to new paradigms, the critical need to prevent event duplication and loss using Inbox and Outbox patterns, and the complexities of managing event contracts and versioning. He concludes by illustrating a comprehensive architecture incorporating these patterns for payments and communications within a banking context.
Key takeaway
For AI Architects or Directors of AI/ML building systems in regulated industries, you should prioritize integrating robust event-driven patterns like Inbox and Outbox from the outset. This approach ensures data integrity, enhances fault tolerance, and facilitates system decoupling, which is crucial for compliance and scalability. Invest in training and standardized frameworks to accelerate team adoption and prevent common pitfalls related to event contracts and eventual consistency.
Key insights
Event-driven architectures offer significant benefits in regulated cloud-native banking, but require careful design for people, data integrity, and contract management.
Principles
- Events signal state change, commands request action.
- Event contracts are immutable once published.
- Prioritize fault tolerance in regulated systems.
Method
Implement Inbox and Outbox patterns within a developer platform to prevent event loss and duplication. Use event versioning and separate domain/integration events to manage contract changes and maintain decoupling.
In practice
- Use lean events with relevant data, not full entity state.
- Stamp events with versions for explicit ordering.
- Provide service templates for event-driven microservices.
Topics
- Event-Driven Architecture
- Cloud-Native Banking
- Inbox Outbox Patterns
- Event Contract Versioning
- Fault Tolerance
Best for: Software Engineer, AI Architect, Director of AI/ML
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by InfoQ.