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
@@ -251,190 +251,164 @@ <h2 id="tech_stack"><a class="anchor" href="#tech_stack"></a><a class="link" hre
251
251
<divclass="sect1">
252
252
<h2id="in_depth"><aclass="anchor" href="#in_depth"></a><aclass="link" href="#in_depth">2. An in-depth look at the solution’s architecture</a></h2>
253
253
<divclass="sectionbody">
254
+
<divclass="paragraph">
255
+
<p>Building applications around the Event Mesh is a solution that can be applied
256
+
either to existing applications or to greenfield projects. The existing
257
+
applications can be divided by their domain boundaries. The divided parts might
258
+
become modules, or even external services. Those modules will issue commands,
259
+
directed towards the Event Mesh, which will be routed towards the configured
260
+
endpoints.</p>
261
+
</div>
254
262
<divclass="sect2">
255
263
<h3id="_problem_analysis"><aclass="anchor" href="#_problem_analysis"></a><aclass="link" href="#_problem_analysis">2.1. Problem Analysis</a></h3>
256
264
<divclass="paragraph">
257
265
<p>Traditional transactional systems enforce strict consistency, which slows
258
-
applications and distorts business logic. In our example, Cabs app, must
259
-
account for a real-life events like exiting a cab, even if dependent systems
260
-
(e.g. invoicing) experience downtime. Throwing errors, while keeps the
261
-
consistency in already stored data, loses the new data from real life events.
262
-
This leads to a bad impression by the end-users, and distorts the actual
263
-
business process.</p>
266
+
applications and distorts business logic. In our illustrative Cabs app example,
267
+
we must accommodate real-world scenarios, such as exiting a cab, even when
268
+
dependent systems (e.g., invoicing) encounter disruptions. Disregarding errors,
269
+
which preserve the integrity of existing data, discards the newly generated data
270
+
from genuine events. This results in a negative user experience and distorts
271
+
the actual business process, leading to potential customer dissatisfaction.</p>
<p>The diagram illustrates the flow of events between the legacy application, the Knative Event Mesh, the fee calculator service, and the datastore.</p>
<h3> Embed HTML by surrounding it with with four +s before and after. </h3>
302
-
<span>View the ascii doc to learn more</span>
303
-
<br>
304
353
</div>
305
354
<divclass="sect2">
306
-
<h3id="_different_decorators"><aclass="anchor" href="#_different_decorators"></a><aclass="link" href="#_different_decorators">2.6. Different decorators</a></h3>
<p>One of the strengths of an event mesh architecture is its ability to integrate seamlessly with legacy systems, making them more resilient and adaptable. Legacy applications can be retrofitted to produce and consume events through lightweight adapters. For instance:</p>
<p>Event listeners can be introduced incrementally, enabling the legacy app to subscribe to events like DriverFeeCalculated without refactoring its core logic.</p>
399
366
</li>
400
367
<li>
401
-
<p>Lorem Ipsum</p>
368
+
<p>This approach decouples old systems from rigid workflows, allowing for gradual modernization while ensuring operational continuity.</p>
<h3id="_content_that_can_be_copied"><aclass="anchor" href="#_content_that_can_be_copied"></a><aclass="link" href="#_content_that_can_be_copied">2.8. Content that can be copied</a></h3>
374
+
<h3id="_improving_resilience_in_traditional_applications"><aclass="anchor" href="#_improving_resilience_in_traditional_applications"></a><aclass="link" href="#_improving_resilience_in_traditional_applications">2.5. Improving Resilience in Traditional Applications</a></h3>
421
375
<divclass="paragraph">
422
-
<p>Click below to copy the content</p>
376
+
<p>Traditional systems often rely on synchronous calls and transactions, which can cascade failures across components. Replacing these with asynchronous event-driven communication reduces dependencies.</p>
423
377
</div>
424
-
<divclass="listingblock console-input">
425
-
<divclass="content">
426
-
<preclass="highlightjs highlight"><codeclass="language-shell script hljs" data-lang="shell script">oc version #openshift cli client
<p>For example, invoicing and notification services in an e-commerce platform can process OrderPlaced events independently, ensuring that downtime in one service does not block the entire order workflow.</p>
428
380
</div>
381
+
<divclass="paragraph">
382
+
<p>Retry mechanisms provided by the event mesh guarantee that transient failures are handled gracefully without data loss.</p>
429
383
</div>
430
384
</div>
431
385
</div>
432
386
</div>
433
387
<divclass="sect1">
434
-
<h2id="more_tech"><aclass="anchor" href="#more_tech"></a><aclass="link" href="#more_tech">3. About the Technology Stack</a></h2>
388
+
<h2id="more_tech"><aclass="anchor" href="#more_tech"></a><aclass="link" href="#more_tech">3. More about the Technology Stack</a></h2>
435
389
<divclass="sectionbody">
436
390
<divclass="paragraph">
437
-
<p>If you want to include more details about the tech stack you used, this is the place.</p>
391
+
<p>It’s worth noting that <em>Knative’s Event Mesh</em> is completely transparent to the
392
+
applications. The applications publish and consume events, usually via
393
+
<em>HTTP REST</em>, and the only thing that is required is the <em>CloudEvents</em> format.</p>
394
+
</div>
395
+
<divclass="paragraph">
396
+
<p>The <em>CloudEvents</em> format provides a common envelope for events with metadata
397
+
that every event needs, such as identifier, type, timestamps, or source
398
+
information. The format is a CNCF standard supported by a number of projects and
399
+
doesn’t enforce the use of any library.</p>
400
+
</div>
401
+
<divclass="paragraph">
402
+
<p>This makes the investment in <em>Knative’s Event Mesh</em> safe in terms of vendor
403
+
lock-in. Architects can be assured that their options remain open and that
404
+
solutions can be easily reconfigured down the road.</p>
405
+
</div>
406
+
<divclass="paragraph">
407
+
<p>What’s more, relying on well-known and easy-to-deploy <em>CloudEvents</em>, typically
408
+
over <em>HTTP</em>, makes testing simple and straightforward. Developers don’t need
409
+
complex development environments because the <em>Event Mesh</em> integration can be
410
+
easily tested with regular <em>REST</em> send or receive tests that most developers
0 commit comments