You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/modules/ROOT/pages/02-architecture.adoc
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ Here's the list of technologies used in this solution and its examples:
18
18
* Red Hat supported products
19
19
** https://www.redhat.com/en/technologies/cloud-computing/openshift[Red Hat OpenShift]
20
20
— Orchestrate containerized applications.
21
-
Based on https://kubernetes.io/[Kuberentes].
21
+
Based on https://kubernetes.io/[Kubernetes].
22
22
** https://www.redhat.com/en/technologies/cloud-computing/openshift/serverless[Red Hat OpenShift Serverless]
23
23
— Provides the _Event Mesh_ and _Serverless_ capabilities.
24
24
Based on https://knative.dev[Knative] project.
@@ -72,7 +72,7 @@ By embracing an eventual consistency model, the _Event Mesh_ aligns closely with
72
72
Unlike traditional transactional systems that strive for immediate, irreversible consistency, the _Event Mesh_ allows for a more flexible and adaptive approach to data consistency.
73
73
This results in better alignment with business requirements, as it supports scenarios where multiple services collaborate and synchronize their operations, making the whole state eventually consistent, without the constraint of strict, synchronous consistency.
74
74
75
-
* **Avoidance of systemic issues**:
75
+
* **Improved Resilience**:
76
76
The _Event Mesh_'s error-handling mechanism, through retries and event persistence, aids in minimizing the impact of failures on the end user.
77
77
This is crucial as it prevents bugs and outages from becoming visible to the user, thereby preserving the system's perceived responsiveness.
78
78
@@ -86,16 +86,16 @@ The event-driven flow enables eventual consistent collaboration and state synchr
86
86
87
87
A usual flow may look like:
88
88
89
-
1. An end-user application sends a request, which forms a _Command_ type event, which is transferred to the _Event Mesh_.
89
+
1. An end-user application sends an _HTTP_ request to the _Event Mesh_. Such message can be understood as a _Command_ type event.
90
90
2. The _Event Mesh_ (Broker) persists the event in a queue (e.g. Kafka).
91
-
After successful persistence _Event Mesh_ returns the success information.
91
+
After _Event Mesh_ persists safely the data, it returns a successful _HTTP_ response with the `202 Accepted` return code.
92
92
At this point, the operation could already be considered successful, from the end-user point of view.
93
93
It will eventually settle correctly in all downstream systems.
94
94
3. The _Event Mesh_ routes the event to the appropriate endpoint based on the event's metadata and configured triggering rules.
95
95
4. The endpoints receive the events and process them, updating their internal states and potentially emitting new events for downstream consumers.
96
96
The potential events are transmitted to the _Event Mesh_.
97
97
5. The dispatch loop continues until the event queue is empty and all the events are processed successfully.
98
-
The failures are being automatically retried by the _Event Mesh_ using exponential backoff algorithm by default.
98
+
The failures are automatically retried by the _Event Mesh_, with an increasing pauses between retries to avoid overloading the system.
@@ -159,9 +159,9 @@ A dead letter sink can also be configured to send events in case they exceed the
159
159
=== _Work Ledger_ analogy
160
160
161
161
A good way of thinking about the _Event Mesh_ and its persistent queue backend is the _Work Ledger_ analogy.
162
-
Like in olden days, the clerk was keeping his to-do work in the _Work Ledger_ (e.g. a tray for paper forms).
162
+
Like in the olden days, the clerk kept his to-do work in the _Work Ledger_ (e.g. a tray for paper forms).
163
163
Then he was picking the next form, and processing it, making changes within the physical file cabinets.
164
-
In case of rare and unexpected issues (e.g. Invoicing dept being unavailable), the clerk would just put the data back onto the _Work Ledger_ to be processed later.
164
+
In case of rare and unexpected issues (e.g. invoicing dept being unavailable), the clerk would just put the data back onto the _Work Ledger_ to be processed later.
165
165
166
166
The _Event Mesh_ is processing the data in very similar fashion.
167
167
The data is held in the _Event Mesh_ only until the system successfully consumes it.
0 commit comments