Skip to content

Commit 47a6152

Browse files
cardilrhuss
andauthored
Apply suggestions from code review
Co-authored-by: Roland Huß <rhuss@redhat.com>
1 parent 66b1614 commit 47a6152

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

documentation/modules/ROOT/pages/02-architecture.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Here's the list of technologies used in this solution and its examples:
1818
* Red Hat supported products
1919
** https://www.redhat.com/en/technologies/cloud-computing/openshift[Red Hat OpenShift]
2020
&mdash; Orchestrate containerized applications.
21-
Based on https://kubernetes.io/[Kuberentes].
21+
Based on https://kubernetes.io/[Kubernetes].
2222
** https://www.redhat.com/en/technologies/cloud-computing/openshift/serverless[Red Hat OpenShift Serverless]
2323
&mdash; Provides the _Event Mesh_ and _Serverless_ capabilities.
2424
Based on https://knative.dev[Knative] project.
@@ -72,7 +72,7 @@ By embracing an eventual consistency model, the _Event Mesh_ aligns closely with
7272
Unlike traditional transactional systems that strive for immediate, irreversible consistency, the _Event Mesh_ allows for a more flexible and adaptive approach to data consistency.
7373
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.
7474

75-
* **Avoidance of systemic issues**:
75+
* **Improved Resilience**:
7676
The _Event Mesh_'s error-handling mechanism, through retries and event persistence, aids in minimizing the impact of failures on the end user.
7777
This is crucial as it prevents bugs and outages from becoming visible to the user, thereby preserving the system's perceived responsiveness.
7878

@@ -86,16 +86,16 @@ The event-driven flow enables eventual consistent collaboration and state synchr
8686

8787
A usual flow may look like:
8888

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.
9090
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.
9292
At this point, the operation could already be considered successful, from the end-user point of view.
9393
It will eventually settle correctly in all downstream systems.
9494
3. The _Event Mesh_ routes the event to the appropriate endpoint based on the event's metadata and configured triggering rules.
9595
4. The endpoints receive the events and process them, updating their internal states and potentially emitting new events for downstream consumers.
9696
The potential events are transmitted to the _Event Mesh_.
9797
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.
9999

100100
image::https://img.plantuml.biz/plantuml/svg/TPFDReGW483lFCNKkpw0XytMRDCqxJQRDdq05iULB885j35Dtxs8k2xxSuEPRpvm1jV6KcsxHf07MsE3m51t0gbCLMS5bqZCaSkMQjh0kBL3Yz0gCVWSOK9r9IHFFKeBMpHr0hy4WAccLNAC9Q-IMjuZ55eTKIT0JLWwxBl33Xr2goFr6RyYVuHKIfIe8TbofXKOr3rdQAxa6-tKsi3d17X7Y8MGuqjgwPuQNF1DSKvkYbZw8dl56PU7I3j5yPPsAGZYm5wAtvNb5MUk7qf6xlF4V81hmbdf6nue6y0Cnc9prOQGVMnRhvksqHK3CNzuCUf3B2tLZqnNOIevxBgzuAO676TgPYhJ_53RRELg8OUlrgdH-ybKjm1-XexPkTPoOsTFF1R815OZVUVK84tTlUB273xSmyGRN3oW-zoDPb_0brVDLijJoU4PhG4kAmLqxwgWd58aFjzNdTx1gMCX0XgPqgKXQvIb-_d-0G00[width=100%]
101101

@@ -159,9 +159,9 @@ A dead letter sink can also be configured to send events in case they exceed the
159159
=== _Work Ledger_ analogy
160160

161161
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).
163163
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.
165165

166166
The _Event Mesh_ is processing the data in very similar fashion.
167167
The data is held in the _Event Mesh_ only until the system successfully consumes it.

documentation/modules/ROOT/pages/03-demo.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ The last part of the refactoring will be the changes needed in our legacy Java a
253253
We need to remove the _Drivers_ logic and send events to the _Event Mesh_ instead.
254254
We also need to accept new events coming from the _Event Mesh_, as the calculated fee will be transmitted as such.
255255

256-
Here's the refactored `+completeTransit+` method:
256+
Here's the refactored code:
257257
[source,java]
258258
----
259259
public void completeTransit(UUID requestUUID, AddressDTO destinationAddress) {

documentation/modules/ROOT/pages/developer-resources.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
== Developer Resources
88

9-
* https://github.com/cardil/cabs-usvc[cardil / cabs-usvc] _(The example code used in this solution)_
9+
* https://github.com/cardil/cabs-usvc[Demo Source] _(The example code used in this solution)_
1010
* https://youtu.be/Rc5IO6S6ZOk[youtu.be / Rc5IO6S6ZOk] _(The talk that served a base for this solution)_
1111
* https://www.redhat.com/en/technologies/cloud-computing/openshift/serverless[Red Hat OpenShift Serverless]
1212
* https://knative.dev/docs/eventing/event-mesh/[Knative Event Mesh]

documentation/modules/ROOT/pages/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ that are often at least as complex as the business they operate in.
1111
This solution pattern is written to make it obvious and to show simple, yet
1212
elegant, correct, and comprehensive way of building software, either in
1313
greenfield or even in legacy projects. This solution leverages the
14-
https://www.redhat.com/en/technologies/cloud-computing/openshift/serverless[Red Hat Serverless]
14+
https://www.redhat.com/en/technologies/cloud-computing/openshift/serverless[Red Hat OpenShift Serverless]
1515
Eventing component, which implements the https://www.redhat.com/en/topics/integration/what-is-an-event-mesh[Event Mesh] pattern.
1616

1717
*Contributors:* https://github.com/cardil[Chris Suszynski]

0 commit comments

Comments
 (0)