Skip to content

Commit 3e83a6e

Browse files
committed
Differences with Event Sourcing and Service Mesh
1 parent 2a5ba67 commit 3e83a6e

File tree

2 files changed

+166
-140
lines changed

2 files changed

+166
-140
lines changed
Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,28 @@
11
== The story behind this solution pattern
22

3-
Cabs is a fictional transportation company. Engineers at Cabs were struggling
4-
with their transactional-style, monolith application. They recently
5-
started an effort to modernize it.
3+
Cabs is a fictional transportation company.
4+
Engineers at Cabs were struggling with their transactional-style, monolith application.
5+
They recently started an effort to modernize it.
66

77
The team saw a https://www.youtube.com/watch?v=Rc5IO6S6ZOk[talk on _Event Mesh_].
8-
The talk presented the advantages of moving beyond transactional architectures
9-
in favor of eventual consistency. By leveraging event meshes with technologies
10-
like Knative, developers can achieve decoupled, reliable microservices without
11-
extensive re-engineering. This solution addresses inefficiencies and aligns
12-
distributed systems with real-world business processes. The team had figured
13-
out they could leverage the _CQRS_ pattern together with _Knative's Event Mesh_
8+
The talk presented the advantages of moving beyond transactional architectures in favor of eventual consistency.
9+
By leveraging event meshes with technologies like Knative, developers can achieve decoupled, reliable microservices without extensive re-engineering.
10+
This solution addresses inefficiencies and aligns distributed systems with real-world business processes.
11+
The team had figured out they could leverage the _CQRS_ pattern together with _Knative's Event Mesh_
1412
to modernize their application in a non-extrusive way.
1513

1614
== The Solution
1715

18-
The core of this solution is an event mesh—a dynamic, flexible layer that
19-
routes, retries, and processes asynchronous events across distributed
20-
components. Using _Knative Eventing_ and _CloudEvents_, this pattern enables:
16+
The core of this solution is an event mesh—a dynamic, flexible layer that routes, retries, and processes asynchronous events across distributed components.
17+
Using _Knative Eventing_ and _CloudEvents_, this pattern enables:
2118

22-
- *Reliable delivery* of events with retry mechanisms.
23-
- Simplified *asynchronous workflows*.
24-
- *Decoupling* of services to improve scalability, testability and resilience.
19+
- *Reliable delivery* of events with retry mechanisms.
20+
- Simplified *asynchronous workflows*.
21+
- *Decoupling* of services to improve scalability, testability and resilience.
2522

26-
The approach of Cabs engineering team is to extract well-defined services, using
27-
the _CQRS_ pattern to identify _Commands_ from _Queries_, and model the
28-
_Commands_ as _Events_. Those events will be routed to the _Event Mesh_ with
29-
regular _HTTP_ messages. The _CloudEvents_ library ensures the proper
30-
serialization of the events to and from the _HTTP_ messages. The _Event Mesh_
31-
will handle not only the persistence of the events in-flight, but also all the
32-
required logic of retry in case of endpoint failure.
23+
The approach of Cabs engineering team is to extract well-defined services, using the _CQRS_ pattern to identify _Commands_ from _Queries_, and model the
24+
_Commands_ as _Events_.
25+
Those events will be routed to the _Event Mesh_ with regular _HTTP_ messages.
26+
The _CloudEvents_ library ensures the proper serialization of the events to and from the _HTTP_ messages.
27+
The _Event Mesh_
28+
will handle not only the persistence of the events in-flight, but also all the required logic of retry in case of endpoint failure.

0 commit comments

Comments
 (0)