|
1 | 1 | == The story behind this solution pattern |
2 | 2 |
|
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. |
6 | 6 |
|
7 | 7 | 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_ |
14 | 12 | to modernize their application in a non-extrusive way. |
15 | 13 |
|
16 | 14 | == The Solution |
17 | 15 |
|
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: |
21 | 18 |
|
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. |
25 | 22 |
|
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