Implementing Event-driven Microservices | Nikhil Barthwal

Discover the power of event-driven microservices, a pattern that allows for loose coupling and distributed data handling, discussed in this talk on implementing event-driven microservices architecture and its applications.

Key takeaways
  • Communication between services can be achieved using a message broker, which avoids the problem of SQL queries.
  • Event-driven architecture allows for loose coupling between services and can handle distributed data.
  • CQRS (Command Query Responsibility Segregation) is a pattern that separates the handling of commands and queries.
  • Event sourcing is a technique that stores the history of events and allows for querying and replaying of events.
  • Sagas are a way to handle long-running business processes that involve multiple services.
  • Domain-driven design is a methodology that focuses on the core business logic of an application.
  • Microservices architecture is a way to design systems that are composed of multiple services that communicate with each other.
  • Event-driven microservices architecture is a pattern that uses events to communicate between services.
  • The CAP theorem states that it is impossible for a distributed system to simultaneously provide more than two out of the following three guarantees: consistency, availability, and partition tolerance.
  • Consistency refers to the ability of the system to maintain a consistent view of the data.
  • Availability refers to the ability of the system to be available and respond to requests.
  • Partition tolerance refers to the ability of the system to continue functioning even if some of the nodes in the system fail or become disconnected.
  • Event-driven architecture can provide eventual consistency, which means that the system will eventually converge to a consistent state.
  • Sagas can be used to handle long-running business processes that involve multiple services.
  • Event sourcing can be used to store the history of events and allow for querying and replaying of events.
  • Domain-driven design can be used to focus on the core business logic of an application.
  • Microservices architecture can be used to design systems that are composed of multiple services that communicate with each other.
  • Event-driven microservices architecture can be used to design systems that use events to communicate between services.