SlideShare a Scribd company logo
How to build an event driven architecture
with Kafka & Kafka Connect
Nov 12, 2020
Lợi Nguyễn - Technical Architect @ VeXeRe
1
Vietnam’s largest online bus booking systemvexere.com
Name: Nguyễn Văn Lợi
Company:
● Vexere - #1 Saas based bus ticket platform in Vietnam
● Chotot - #1 Classified Marketplace in Vietnam
● Blue Orchid - A start-up founded by ex-Grab CTO
● Softfoundry - VoIP product
2
Vietnam’s largest online bus booking systemvexere.com
VeXeRe.com is a Vietnamese online bus ticket booking system that operates through
many transportation companies.
3
Vietnam’s largest online bus booking systemvexere.com 4
Vietnam’s largest online bus booking systemvexere.com 5
Vietnam’s largest online bus booking systemvexere.com
● Why event driven architecture?
● What is “Event Driven” architecture?
○ Event-carried State Transfer
○ Event Sourcing
● Event Sourcing in real world
○ What is 2 phase write?
○ MSSQL / transaction log
○ Postgresql / WAL
● What is Kafka & Kafka Connect?
○ Connector/Task/Worker
■ MSSQL Source Connector
○ Transform
○ Kafka and Kafka Connect @ vexere
○ Pros/Cons of Kafka Connect vs Custom Producer
● Use Case/Demo
○ Customer Journey Map Notification
○ Social Proof
○ Event Sourcing + CQRS
○ Data Warehouse
● Experience / Tools / Troubleshoot
○ Tools: (kafka manager, kafka tool)
○ Troubleshoot connector
○ Monitoring
○ Domain Event vs Event Sourcing Event
● Q & A & Discussion
6
Vietnam’s largest online bus booking systemvexere.com 7
Vietnam’s largest online bus booking systemvexere.com 8
Phase Challenges
Launch ● Business Idea Profitability
● Limit resource:
○ Time
○ Technology
○ Money
Growth/Expansion ● Increasing Customers
● Increasing Feature
● Adding New Products/BU
Vietnam’s largest online bus booking systemvexere.com
● Event-carried State Transfer
● Event Sourcing
9
Vietnam’s largest online bus booking systemvexere.com
10
Vietnam’s largest online bus booking systemvexere.com
11
Vietnam’s largest online bus booking systemvexere.com
12
Vietnam’s largest online bus booking systemvexere.com
● Two representation of the world:
○ Application State: the current representation of the world, and
○ log of all the events: that changed that world
● The test definition of Event Sourcing:
○ at any time we can blow away the application state and confidently rebuild it from
the log.
● Benefit:
○ Audits
○ Debugging
13
Vietnam’s largest online bus booking systemvexere.com
● What is “Event Driven” architecture?
○ Event-carried State Transfer
○ Event Sourcing
14
Vietnam’s largest online bus booking systemvexere.com
● Event Sourcing in real world
○ What is 2 phase write?
○ MSSQL / transaction log
○ Postgresql / WAL
15
Vietnam’s largest online bus booking systemvexere.com
16
Insert without WAL
Vietnam’s largest online bus booking systemvexere.com
17
Insertion operations with WAL
Vietnam’s largest online bus booking systemvexere.com
18
Vietnam’s largest online bus booking systemvexere.com
19
Vietnam’s largest online bus booking systemvexere.com
● Event Sourcing in real world
○ What is 2 phase write?
○ MSSQL / transaction log
○ Postgresql / WAL
20
Vietnam’s largest online bus booking systemvexere.com
● What is Kafka & Kafka Connect?
○ Connector/Task/Worker
○ Transform
○ How we use Kafka and Kafka Connect @ vexere
○ Pros/Cons of Kafka Connect vs Custom Producer
21
Vietnam’s largest online bus booking systemvexere.com
● topic
● producer
● consumer
● broker
● partition
● consumer group
22
Vietnam’s largest online bus booking systemvexere.com
23
Vietnam’s largest online bus booking systemvexere.com
24
Vietnam’s largest online bus booking systemvexere.com
25
Vietnam’s largest online bus booking systemvexere.com 26
Vietnam’s largest online bus booking systemvexere.com 27
Vietnam’s largest online bus booking systemvexere.com 28
Vietnam’s largest online bus booking systemvexere.com
Kafka Connect is a framework to stream data into and out of Apache Kafka
● Connectors – the high level abstraction that coordinates data streaming by managing tasks
● Tasks – the implementation of how data is copied to or from Kafka
● Workers – the running processes that execute connectors and tasks
● Converters – the code used to translate data between Connect and the system sending or receiving data
● Transforms – simple logic to alter each message produced by or sent to a connector
● Dead Letter Queue – how Connect handles connector errors
29
Vietnam’s largest online bus booking systemvexere.com
No coding required, just json config:
30
Vietnam’s largest online bus booking systemvexere.com 31
Vietnam’s largest online bus booking systemvexere.com 32
Vietnam’s largest online bus booking systemvexere.com 33
Vietnam’s largest online bus booking systemvexere.com 34
Vietnam’s largest online bus booking systemvexere.com 35
Vietnam’s largest online bus booking systemvexere.com 36
Vietnam’s largest online bus booking systemvexere.com
Pros Cons
● Many Connectors (source/sink)
● No coding required
● Simple transform only
● Hard to customize or write your own
connector
37
Vietnam’s largest online bus booking systemvexere.com
● What is Kafka & Kafka Connect?
○ Connector/Task/Worker
■ MSSQL Source Connector
○ Transform
○ How we use Kafka and Kafka Connect @ vexere
○ Pros/Cons of Kafka Connect vs Custom Producer
38
Vietnam’s largest online bus booking systemvexere.com
● Monitor kafka connect job
● AlwaysOn Cluster Config
● Database schema evolution
39
Vietnam’s largest online bus booking systemvexere.com 40
Vietnam’s largest online bus booking systemvexere.com
In Kafka Connect, task is being killed and will not recover until manually
restarted
Solution:
● Cronjob to monitor task status, then restart task by calling restful to
task api
● Dead Letter Queue to handle error in:
○ Convert
○ Transform
41
Vietnam’s largest online bus booking systemvexere.com 42
Reference: https://debezium.io/documentation/reference/connectors/sqlserver.html#sqlserver-schema-evolution
Vietnam’s largest online bus booking systemvexere.com 43
Vietnam’s largest online bus booking systemvexere.com 44
● NVARCHAR(max) is not supported in CDC table (cannot record before value,
only have after update value)
Vietnam’s largest online bus booking systemvexere.com
● Experience / Tools / Troubleshoot
○ Tools: (kafka manager, kafka tool)
○ Troubleshoot connector
○ Monitoring
45
Vietnam’s largest online bus booking systemvexere.com 46
Reward
Thay đổi thông tin tài xế, biển số xe
Đánh giá sau chuyến điThanh toán
Vietnam’s largest online bus booking systemvexere.com
Calculated from Ticket & Booking event
47
Vietnam’s largest online bus booking systemvexere.com
Separate read & write model
Write model: MSSQL
Read model: Elasticsearch
MSSQL ⇒ Kafka ⇒ Kafka consumer ⇒ Elasticsearch
48
Vietnam’s largest online bus booking systemvexere.com
Example: Real Time sync data from MSSQL ⇒ Stagging Postgres ⇒ Bigquery
Note:
● be careful when backfill data
● If we new column, we have to trigger dummy update to trigger all record event
=> a lot of trash in transaction log ==> need to write your own job
49
Vietnam’s largest online bus booking systemvexere.com
50
Vietnam’s largest online bus booking systemvexere.com 51
Reference: https://www.enterpriseintegrationpatterns.com/patterns/messaging/index.html
Vietnam’s largest online bus booking systemvexere.com
● https://martinfowler.com/articles/201701-event-driven.html
● https://www.confluent.io/blog/announcing-kafka-connect-building-large-scale-low-latenc
y-data-pipelines/
● https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/about-change-
data-capture-sql-server?view=sql-server-2017
● https://docs.confluent.io/current/connect/concepts.html
● https://www.slideshare.net/ConfluentInc/from-zero-to-hero-with-kafka-connect
● https://www.innoq.com/en/blog/domain-events-versus-event-sourcing/#eventsfromeven
tsourcing%E2%89%A0domainevents
52
Vietnam’s largest online bus booking systemvexere.com 53
Vietnam’s largest online bus booking systemvexere.com 54

More Related Content

PDF
Grokking TechTalk #33: High Concurrency Architecture at TIKI
PPS
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
PDF
Microservice Architecture
PDF
High Concurrency Architecture at TIKI
PDF
Microservices
PDF
Grokking Techtalk #34: K8S On-premise: Incident & Lesson Learned ZaloPay Mer...
PDF
Service Mesh on Kubernetes with Istio
PPTX
Introduction to Microservices
Grokking TechTalk #33: High Concurrency Architecture at TIKI
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Microservice Architecture
High Concurrency Architecture at TIKI
Microservices
Grokking Techtalk #34: K8S On-premise: Incident & Lesson Learned ZaloPay Mer...
Service Mesh on Kubernetes with Istio
Introduction to Microservices

What's hot (20)

ODP
Introduction To RabbitMQ
PDF
InnoDB Locking Explained with Stick Figures
PPTX
Monoliths and Microservices
PPTX
Microservices
PPTX
Introduction to Microservices
PDF
From Mainframe to Microservice: An Introduction to Distributed Systems
PPTX
Microservice vs. Monolithic Architecture
PPSX
Service Mesh - Observability
PPSX
Event Sourcing & CQRS, Kafka, Rabbit MQ
PDF
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
PDF
Why Microservice
PDF
Microservices architecture
PDF
Integrating systems in the age of Quarkus and Camel
PPTX
Apache Kafka 0.8 basic training - Verisign
PPTX
Microservices and docker
PPTX
PPTX
Introduction To Microservices
PPTX
Introduction to microservices
PPTX
Rabbit MQ introduction
PPTX
HAProxy
Introduction To RabbitMQ
InnoDB Locking Explained with Stick Figures
Monoliths and Microservices
Microservices
Introduction to Microservices
From Mainframe to Microservice: An Introduction to Distributed Systems
Microservice vs. Monolithic Architecture
Service Mesh - Observability
Event Sourcing & CQRS, Kafka, Rabbit MQ
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
Why Microservice
Microservices architecture
Integrating systems in the age of Quarkus and Camel
Apache Kafka 0.8 basic training - Verisign
Microservices and docker
Introduction To Microservices
Introduction to microservices
Rabbit MQ introduction
HAProxy
Ad

More from Grokking VN (20)

PDF
Grokking Techtalk #46: Lessons from years hacking and defending Vietnamese banks
PDF
Grokking Techtalk #45: First Principles Thinking
PDF
Grokking Techtalk #42: Engineering challenges on building data platform for M...
PDF
Grokking Techtalk #43: Payment gateway demystified
PPTX
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
PPTX
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
PDF
Grokking Techtalk #39: Gossip protocol and applications
PDF
Grokking Techtalk #38: Escape Analysis in Go compiler
PPTX
Grokking Techtalk #37: Data intensive problem
PPTX
Grokking Techtalk #37: Software design and refactoring
PDF
Grokking TechTalk #35: Efficient spellchecking
PDF
Grokking TechTalk #33: Architecture of AI-First Systems - Engineering for Big...
PDF
SOLID & Design Patterns
PDF
Grokking TechTalk #31: Asynchronous Communications
PDF
Grokking TechTalk #30: From App to Ecosystem: Lessons Learned at Scale
PDF
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
PDF
Grokking TechTalk #27: Optimal Binary Search Tree
PDF
Grokking TechTalk #26: Kotlin, Understand the Magic
PDF
Grokking TechTalk #26: Compare ios and android platform
PPTX
Grokking TechTalk #24: Thiết kế hệ thống Background Job Queue bằng Ruby & Pos...
Grokking Techtalk #46: Lessons from years hacking and defending Vietnamese banks
Grokking Techtalk #45: First Principles Thinking
Grokking Techtalk #42: Engineering challenges on building data platform for M...
Grokking Techtalk #43: Payment gateway demystified
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: AWS’s philosophy on designing MLOps platform
Grokking Techtalk #39: Gossip protocol and applications
Grokking Techtalk #38: Escape Analysis in Go compiler
Grokking Techtalk #37: Data intensive problem
Grokking Techtalk #37: Software design and refactoring
Grokking TechTalk #35: Efficient spellchecking
Grokking TechTalk #33: Architecture of AI-First Systems - Engineering for Big...
SOLID & Design Patterns
Grokking TechTalk #31: Asynchronous Communications
Grokking TechTalk #30: From App to Ecosystem: Lessons Learned at Scale
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #27: Optimal Binary Search Tree
Grokking TechTalk #26: Kotlin, Understand the Magic
Grokking TechTalk #26: Compare ios and android platform
Grokking TechTalk #24: Thiết kế hệ thống Background Job Queue bằng Ruby & Pos...
Ad

Recently uploaded (20)

PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
Monitoring Global Terrestrial Surface Water Height using Remote Sensing - ARS...
PPTX
The-Looming-Shadow-How-AI-Poses-Dangers-to-Humanity.pptx
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Internship_Presentation_Final engineering.pptx
PPTX
AgentX UiPath Community Webinar series - Delhi
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PPTX
436813905-LNG-Process-Overview-Short.pptx
PDF
Queuing formulas to evaluate throughputs and servers
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
DOCX
573137875-Attendance-Management-System-original
PDF
BRKDCN-2613.pdf Cisco AI DC NVIDIA presentation
PPTX
Road Safety tips for School Kids by a k maurya.pptx
PPT
Drone Technology Electronics components_1
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Structs to JSON How Go Powers REST APIs.pdf
Monitoring Global Terrestrial Surface Water Height using Remote Sensing - ARS...
The-Looming-Shadow-How-AI-Poses-Dangers-to-Humanity.pptx
OOP with Java - Java Introduction (Basics)
Internship_Presentation_Final engineering.pptx
AgentX UiPath Community Webinar series - Delhi
Strings in CPP - Strings in C++ are sequences of characters used to store and...
436813905-LNG-Process-Overview-Short.pptx
Queuing formulas to evaluate throughputs and servers
Arduino robotics embedded978-1-4302-3184-4.pdf
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
573137875-Attendance-Management-System-original
BRKDCN-2613.pdf Cisco AI DC NVIDIA presentation
Road Safety tips for School Kids by a k maurya.pptx
Drone Technology Electronics components_1
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...

Grokking Techtalk #39: How to build an event driven architecture with Kafka & Kafka Connect

  • 1. How to build an event driven architecture with Kafka & Kafka Connect Nov 12, 2020 Lợi Nguyễn - Technical Architect @ VeXeRe 1
  • 2. Vietnam’s largest online bus booking systemvexere.com Name: Nguyễn Văn Lợi Company: ● Vexere - #1 Saas based bus ticket platform in Vietnam ● Chotot - #1 Classified Marketplace in Vietnam ● Blue Orchid - A start-up founded by ex-Grab CTO ● Softfoundry - VoIP product 2
  • 3. Vietnam’s largest online bus booking systemvexere.com VeXeRe.com is a Vietnamese online bus ticket booking system that operates through many transportation companies. 3
  • 4. Vietnam’s largest online bus booking systemvexere.com 4
  • 5. Vietnam’s largest online bus booking systemvexere.com 5
  • 6. Vietnam’s largest online bus booking systemvexere.com ● Why event driven architecture? ● What is “Event Driven” architecture? ○ Event-carried State Transfer ○ Event Sourcing ● Event Sourcing in real world ○ What is 2 phase write? ○ MSSQL / transaction log ○ Postgresql / WAL ● What is Kafka & Kafka Connect? ○ Connector/Task/Worker ■ MSSQL Source Connector ○ Transform ○ Kafka and Kafka Connect @ vexere ○ Pros/Cons of Kafka Connect vs Custom Producer ● Use Case/Demo ○ Customer Journey Map Notification ○ Social Proof ○ Event Sourcing + CQRS ○ Data Warehouse ● Experience / Tools / Troubleshoot ○ Tools: (kafka manager, kafka tool) ○ Troubleshoot connector ○ Monitoring ○ Domain Event vs Event Sourcing Event ● Q & A & Discussion 6
  • 7. Vietnam’s largest online bus booking systemvexere.com 7
  • 8. Vietnam’s largest online bus booking systemvexere.com 8 Phase Challenges Launch ● Business Idea Profitability ● Limit resource: ○ Time ○ Technology ○ Money Growth/Expansion ● Increasing Customers ● Increasing Feature ● Adding New Products/BU
  • 9. Vietnam’s largest online bus booking systemvexere.com ● Event-carried State Transfer ● Event Sourcing 9
  • 10. Vietnam’s largest online bus booking systemvexere.com 10
  • 11. Vietnam’s largest online bus booking systemvexere.com 11
  • 12. Vietnam’s largest online bus booking systemvexere.com 12
  • 13. Vietnam’s largest online bus booking systemvexere.com ● Two representation of the world: ○ Application State: the current representation of the world, and ○ log of all the events: that changed that world ● The test definition of Event Sourcing: ○ at any time we can blow away the application state and confidently rebuild it from the log. ● Benefit: ○ Audits ○ Debugging 13
  • 14. Vietnam’s largest online bus booking systemvexere.com ● What is “Event Driven” architecture? ○ Event-carried State Transfer ○ Event Sourcing 14
  • 15. Vietnam’s largest online bus booking systemvexere.com ● Event Sourcing in real world ○ What is 2 phase write? ○ MSSQL / transaction log ○ Postgresql / WAL 15
  • 16. Vietnam’s largest online bus booking systemvexere.com 16 Insert without WAL
  • 17. Vietnam’s largest online bus booking systemvexere.com 17 Insertion operations with WAL
  • 18. Vietnam’s largest online bus booking systemvexere.com 18
  • 19. Vietnam’s largest online bus booking systemvexere.com 19
  • 20. Vietnam’s largest online bus booking systemvexere.com ● Event Sourcing in real world ○ What is 2 phase write? ○ MSSQL / transaction log ○ Postgresql / WAL 20
  • 21. Vietnam’s largest online bus booking systemvexere.com ● What is Kafka & Kafka Connect? ○ Connector/Task/Worker ○ Transform ○ How we use Kafka and Kafka Connect @ vexere ○ Pros/Cons of Kafka Connect vs Custom Producer 21
  • 22. Vietnam’s largest online bus booking systemvexere.com ● topic ● producer ● consumer ● broker ● partition ● consumer group 22
  • 23. Vietnam’s largest online bus booking systemvexere.com 23
  • 24. Vietnam’s largest online bus booking systemvexere.com 24
  • 25. Vietnam’s largest online bus booking systemvexere.com 25
  • 26. Vietnam’s largest online bus booking systemvexere.com 26
  • 27. Vietnam’s largest online bus booking systemvexere.com 27
  • 28. Vietnam’s largest online bus booking systemvexere.com 28
  • 29. Vietnam’s largest online bus booking systemvexere.com Kafka Connect is a framework to stream data into and out of Apache Kafka ● Connectors – the high level abstraction that coordinates data streaming by managing tasks ● Tasks – the implementation of how data is copied to or from Kafka ● Workers – the running processes that execute connectors and tasks ● Converters – the code used to translate data between Connect and the system sending or receiving data ● Transforms – simple logic to alter each message produced by or sent to a connector ● Dead Letter Queue – how Connect handles connector errors 29
  • 30. Vietnam’s largest online bus booking systemvexere.com No coding required, just json config: 30
  • 31. Vietnam’s largest online bus booking systemvexere.com 31
  • 32. Vietnam’s largest online bus booking systemvexere.com 32
  • 33. Vietnam’s largest online bus booking systemvexere.com 33
  • 34. Vietnam’s largest online bus booking systemvexere.com 34
  • 35. Vietnam’s largest online bus booking systemvexere.com 35
  • 36. Vietnam’s largest online bus booking systemvexere.com 36
  • 37. Vietnam’s largest online bus booking systemvexere.com Pros Cons ● Many Connectors (source/sink) ● No coding required ● Simple transform only ● Hard to customize or write your own connector 37
  • 38. Vietnam’s largest online bus booking systemvexere.com ● What is Kafka & Kafka Connect? ○ Connector/Task/Worker ■ MSSQL Source Connector ○ Transform ○ How we use Kafka and Kafka Connect @ vexere ○ Pros/Cons of Kafka Connect vs Custom Producer 38
  • 39. Vietnam’s largest online bus booking systemvexere.com ● Monitor kafka connect job ● AlwaysOn Cluster Config ● Database schema evolution 39
  • 40. Vietnam’s largest online bus booking systemvexere.com 40
  • 41. Vietnam’s largest online bus booking systemvexere.com In Kafka Connect, task is being killed and will not recover until manually restarted Solution: ● Cronjob to monitor task status, then restart task by calling restful to task api ● Dead Letter Queue to handle error in: ○ Convert ○ Transform 41
  • 42. Vietnam’s largest online bus booking systemvexere.com 42 Reference: https://debezium.io/documentation/reference/connectors/sqlserver.html#sqlserver-schema-evolution
  • 43. Vietnam’s largest online bus booking systemvexere.com 43
  • 44. Vietnam’s largest online bus booking systemvexere.com 44 ● NVARCHAR(max) is not supported in CDC table (cannot record before value, only have after update value)
  • 45. Vietnam’s largest online bus booking systemvexere.com ● Experience / Tools / Troubleshoot ○ Tools: (kafka manager, kafka tool) ○ Troubleshoot connector ○ Monitoring 45
  • 46. Vietnam’s largest online bus booking systemvexere.com 46 Reward Thay đổi thông tin tài xế, biển số xe Đánh giá sau chuyến điThanh toán
  • 47. Vietnam’s largest online bus booking systemvexere.com Calculated from Ticket & Booking event 47
  • 48. Vietnam’s largest online bus booking systemvexere.com Separate read & write model Write model: MSSQL Read model: Elasticsearch MSSQL ⇒ Kafka ⇒ Kafka consumer ⇒ Elasticsearch 48
  • 49. Vietnam’s largest online bus booking systemvexere.com Example: Real Time sync data from MSSQL ⇒ Stagging Postgres ⇒ Bigquery Note: ● be careful when backfill data ● If we new column, we have to trigger dummy update to trigger all record event => a lot of trash in transaction log ==> need to write your own job 49
  • 50. Vietnam’s largest online bus booking systemvexere.com 50
  • 51. Vietnam’s largest online bus booking systemvexere.com 51 Reference: https://www.enterpriseintegrationpatterns.com/patterns/messaging/index.html
  • 52. Vietnam’s largest online bus booking systemvexere.com ● https://martinfowler.com/articles/201701-event-driven.html ● https://www.confluent.io/blog/announcing-kafka-connect-building-large-scale-low-latenc y-data-pipelines/ ● https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/about-change- data-capture-sql-server?view=sql-server-2017 ● https://docs.confluent.io/current/connect/concepts.html ● https://www.slideshare.net/ConfluentInc/from-zero-to-hero-with-kafka-connect ● https://www.innoq.com/en/blog/domain-events-versus-event-sourcing/#eventsfromeven tsourcing%E2%89%A0domainevents 52
  • 53. Vietnam’s largest online bus booking systemvexere.com 53
  • 54. Vietnam’s largest online bus booking systemvexere.com 54