
Introduction and what will we learn in this course!
Synchronous data exchange between microservices(REST/gRPC), its advantages, and disadvantages.
Asynchronous data exchange between microservices(Message Broker), its advantages, and disadvantages.
What is transactional outbox pattern?
Why is it needed?
What are different ways to implement it?
Introduction to Debezium!
Debezium Architecture.
Debezium connector for Mongodb.
Internal working of Debezium connector for Mongodb.
Setup order service.
Order service that accepts orders and saves in Atlas MongoDB.
Configure Debezium connector for Mongodb using Docker.
Consumer part of Debezium, that listens to changes on order documents and allocates loyalty points.
Debezium is a set of distributed services to capture changes in your databases so that your applications can see those changes and respond to them. Debezium records all row-level changes within each database table in a change event stream, and applications simply read these streams to see the change events in the same order in which they occurred.
This is widely used to loosely couple and scale the micro-service architecture. It supports wide range of databases like Mongodb, MySQL, Postgres, Oracle etc.
Advantages of Debezium:
1. Ensures all data changes are captured.
2. Supports wide range of Databases.
3. Produces change events with very low delay. Also avoids high CPU usage.
4. Can capture deletes.
5. Can capture old record state and additional metadata.
What to expect from this course:
1. Learn about what are different Data Exchange patterns between Microservices, their advantages and disadvantages.
2. What is Transactional Outbox Pattern, why is it needed, and what are various ways to implement it?
3. What is Debezium, it's architecture, connector for Mongodb and it's internal working.
4. Full Hands-on demo, where we will develop order service that accepts and stores order details, stream these details using Debezium as events on Kafka, and then consume these events using loyalty service, that allocates loyalty points to the customer, thus loose coupling dependency between our order service and loyalty service and also avoiding Dual Writes problem!