Please log in to watch this conference skillscast.
When you move from a monolith to microservices you abandon integrating via a shared database, as each service must own its own data to allow them it to be autonomous. But now you have a new problem, our data is distributed.
What happens if Ian needs one service needs to talk to another about a shared concept such as a product, a hotel room, or an order? Does every service need to have a list of all our users?
Who knows what users have permissions to the entities within the microservice? What happens if his REST endpoint needs to include data from a graph that includes other services to make it responsive? And he is not breaking the boundary of his service when all of this data leaves his service boundary in response to a request?
Naive request-based solutions result in chatty calls as each service engages with multiple other services to fulfill a request, or in large message payloads as services add all the data required to process a message to each message. Neither scale well.
In 2005, Pat Helland wrote a paper ‘Data on the Inside vs. Data on the Outside’ which answers the question by distinguishing between data a service owns and reference data that it can use. Martin Fowler named the resulting architectural style; Event Driven Collaboration. This style is significant because it shifts the pattern from request to receiver-driven flow control.
In this presentation, Ian will explain how events help us integrate our service architectures.
YOU MAY ALSO LIKE:
- Event Driven Collaboration (SkillsCast recorded in March 2019)
- Domain Models in Practice: DDD, CQRS & Event Sourcing with Marco Heimeshoff (Online Course on 30th November - 4th December 2020)
- Sociotechnical Domain-Driven Design with Kacper Gunia (Online Course on 7th - 8th December 2020)
- Strategic Domain-Driven Design Tools For Non‑DDD People (Online Meetup on 29th October 2020)
- Implementing Microservices: Nobody Told Me About That (SkillsCast recorded in October 2020)
- Debugging Containers on Kubernetes with "kubectl debug" (SkillsCast recorded in July 2020)