SlideShare a Scribd company logo
Public Version 1.0
You need Event Mesh,
not Service Mesh!
Chris Suszyński
@ksuszynski +krzysztof-suszynski
About me
2
Chris Suszyński
➔ Senior Software Engineer at Red Hat
➔ Work on OpenShift Serverless
➔ Go, Rust and Java enthusiast
➔ 15+ years of experience
➔ FOSS contributor: ~80 original repos
➔ Happy father and husband
Public Version 1.0
Agenda
➔ Transactional lie
➔ Eventual consistency
➔ Service Mesh fallacy
➔ CQRS
➔ Kubernetes reconcile loop
➔ Event Mesh
➔ Knative
➔ Demos, show me the code!
Transactional - a lie, trap
1 Transactional are rare
2 We overuse it massively
3 Distorts the business logic
4 Slow and error-prone
Example
Overuse of
Transaction
Eventual
consistency
Try 1
Naive split
into remote μ-Svc
➔ 12 remote calls to 5
remote μ-Svc!
➔ 99.99% uptime ^ 12 =
99.88%
➔ 1000% slower
➔ Possible data loss
Service Mesh fallacy
The Service Mesh promises a safe layer
for remote service calls.
But, we shouldn’t do synchronous,
remote calls apart from queries!
CQRS
CQRS stands for Command and Query Responsibility Segregation, a
pattern that separates read and update operations for a data store.
Changes
Command
➔ Asynchronous
➔ aka Events
➔ Do not lose it
Read
Query
➔ Synchronous
➔ Request, Response
➔ Safe to retry
CQRS example
Dividing the example into Command and Queries
Commands / Events
➔ CompleteTransit
➔ UpdateDestination
➔ CalculateFee
➔ DriverFree
➔ RegisterMiles
➔ IssueInvoice
Queries
➔ ReadTransit
➔ ReadAddress
➔ …
Kubernetes
reconcile loop
Extension
// MemcachedSpec defines the desired state of Memcached
type MemcachedSpec struct {
//+kubebuilder:validation:Minimum=0
// Size is the size of the memcached deployment
Size int32 `json:"size"`
}
// MemcachedStatus defines the observed state of Memcached
type MemcachedStatus struct {
// Nodes are the names of the memcached pods
Nodes []string `json:"nodes"`
}
Reconcile loop
import (
ctrl "sigs.k8s.io/controller-runtime"
cachev1alpha1 "github.com/example/memcached-operator/api/v1alpha1"
...
)
func (r *MemcachedReconciler) Reconcile(ctx context.Context, req ctrl.Request)
(ctrl.Result, error) {
// Lookup the Memcached instance for this reconcile request
memcached := &cachev1alpha1.Memcached{}
err := r.Get(ctx, req.NamespacedName, memcached)
...
}
Demo
Watch out!
Kubernetes' reconciliation loop relies on
ETCD watch feature.
It works until a point, ~100k records.
Event Mesh
What is the Event Mesh?
“An event mesh is a configurable and dynamic
infrastructure layer for distributing events among
decoupled applications, cloud services and devices.
It enables event communications to be governed,
flexible, reliable and fast.”
Event Mesh vs Service Mesh
Service Mesh Event Mesh
Similarities
➔ Flexibility
➔ Robustness
➔ Decoupling
Differences
➔ Synchronous
➔ Request and response
➔ Better for queries
➔ Asynchronous
➔ Event
➔ Better for commands
based on Knative
OpenShift Serverless
is a Kubernetes extension
that allows you to deploy and
manage modern serverless
apps.
Knative
21
Knative in OpenShift
➔ Knative is a CNCF Open Source project
➔ A community driven by multiple stakeholders https://knative.dev
◆ Supported by Google, Red Hat, IBM, VMware, TriggerMesh, SAP and more
➔ OpenShift Serverless: https://www.openshift.com/learn/topics/serverless
➔ Latest production-ready release: 1.28.0 (Knative 1.7)
Demo
Thanks!
Chris Suszyński
@ksuszynski +krzysztof-suszynski
Questions?
Resources
● github.com / wavesoftware / passless-operator
● github.com / cardil / cabs-usvc
● developers.redhat.com
● bit.ly/knative-tutorial

More Related Content

PPTX
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
PDF
Red Hat and kubernetes: awesome stuff coming your way
PDF
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
PPTX
Kubernetes and OpenStack at Scale
PDF
The service mesh: resilient communication for microservice applications
PDF
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
PDF
Ippevent : openshift Introduction
PDF
Dublin Microservice "Introduction to Service Meshes"
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
Red Hat and kubernetes: awesome stuff coming your way
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
Kubernetes and OpenStack at Scale
The service mesh: resilient communication for microservice applications
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Ippevent : openshift Introduction
Dublin Microservice "Introduction to Service Meshes"

Similar to You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301] (20)

PPTX
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
PPTX
Kubernetes @ Squarespace: Kubernetes in the Datacenter
PPTX
Micro xchg 2018 - What is a Service Mesh?
PPTX
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
PDF
Ottimizzare le performance dell'API Server K8s come utilizzare cache e eventi...
PDF
Observability
PDF
Observability
PDF
Crossing the Streams Mesos <> Kubernetes
PPTX
ABC Present-Service-Mesh.pptx
PPTX
OpenStack at CERN : A 5 year perspective
PPTX
Robust Containers by Eric Brewer
PPTX
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
PDF
From Monolith to Docker Distributed Applications. JavaOne
PDF
Extending Kubernetes
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
Operator Lifecycle Management
PDF
Operator Lifecycle Management
PDF
Kubernetes_Webinar_Slide_Deck.pdf
PDF
Service Mesh: Two Big Words But Do You Need It?
PDF
CNCF Meetup - OpenShift Overview
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Micro xchg 2018 - What is a Service Mesh?
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
Ottimizzare le performance dell'API Server K8s come utilizzare cache e eventi...
Observability
Observability
Crossing the Streams Mesos <> Kubernetes
ABC Present-Service-Mesh.pptx
OpenStack at CERN : A 5 year perspective
Robust Containers by Eric Brewer
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
From Monolith to Docker Distributed Applications. JavaOne
Extending Kubernetes
Kubernetes Architecture - beyond a black box - Part 1
Operator Lifecycle Management
Operator Lifecycle Management
Kubernetes_Webinar_Slide_Deck.pdf
Service Mesh: Two Big Words But Do You Need It?
CNCF Meetup - OpenShift Overview
Ad

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Machine Learning_overview_presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
sap open course for s4hana steps from ECC to s4
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
A comparative analysis of optical character recognition models for extracting...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
The AUB Centre for AI in Media Proposal.docx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine Learning_overview_presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
Programs and apps: productivity, graphics, security and other tools
20250228 LYD VKU AI Blended-Learning.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Ad

You need Event Mesh, not Service Mesh - Chris Suszynski [WJUG 301]

  • 1. Public Version 1.0 You need Event Mesh, not Service Mesh! Chris Suszyński @ksuszynski +krzysztof-suszynski
  • 2. About me 2 Chris Suszyński ➔ Senior Software Engineer at Red Hat ➔ Work on OpenShift Serverless ➔ Go, Rust and Java enthusiast ➔ 15+ years of experience ➔ FOSS contributor: ~80 original repos ➔ Happy father and husband
  • 3. Public Version 1.0 Agenda ➔ Transactional lie ➔ Eventual consistency ➔ Service Mesh fallacy ➔ CQRS ➔ Kubernetes reconcile loop ➔ Event Mesh ➔ Knative ➔ Demos, show me the code!
  • 4. Transactional - a lie, trap 1 Transactional are rare 2 We overuse it massively 3 Distorts the business logic 4 Slow and error-prone
  • 7. Try 1 Naive split into remote μ-Svc ➔ 12 remote calls to 5 remote μ-Svc! ➔ 99.99% uptime ^ 12 = 99.88% ➔ 1000% slower ➔ Possible data loss
  • 8. Service Mesh fallacy The Service Mesh promises a safe layer for remote service calls. But, we shouldn’t do synchronous, remote calls apart from queries!
  • 9. CQRS CQRS stands for Command and Query Responsibility Segregation, a pattern that separates read and update operations for a data store. Changes Command ➔ Asynchronous ➔ aka Events ➔ Do not lose it Read Query ➔ Synchronous ➔ Request, Response ➔ Safe to retry
  • 10. CQRS example Dividing the example into Command and Queries Commands / Events ➔ CompleteTransit ➔ UpdateDestination ➔ CalculateFee ➔ DriverFree ➔ RegisterMiles ➔ IssueInvoice Queries ➔ ReadTransit ➔ ReadAddress ➔ …
  • 12. Extension // MemcachedSpec defines the desired state of Memcached type MemcachedSpec struct { //+kubebuilder:validation:Minimum=0 // Size is the size of the memcached deployment Size int32 `json:"size"` } // MemcachedStatus defines the observed state of Memcached type MemcachedStatus struct { // Nodes are the names of the memcached pods Nodes []string `json:"nodes"` }
  • 13. Reconcile loop import ( ctrl "sigs.k8s.io/controller-runtime" cachev1alpha1 "github.com/example/memcached-operator/api/v1alpha1" ... ) func (r *MemcachedReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { // Lookup the Memcached instance for this reconcile request memcached := &cachev1alpha1.Memcached{} err := r.Get(ctx, req.NamespacedName, memcached) ... }
  • 14. Demo
  • 15. Watch out! Kubernetes' reconciliation loop relies on ETCD watch feature. It works until a point, ~100k records.
  • 17. What is the Event Mesh? “An event mesh is a configurable and dynamic infrastructure layer for distributing events among decoupled applications, cloud services and devices. It enables event communications to be governed, flexible, reliable and fast.”
  • 18. Event Mesh vs Service Mesh Service Mesh Event Mesh Similarities ➔ Flexibility ➔ Robustness ➔ Decoupling Differences ➔ Synchronous ➔ Request and response ➔ Better for queries ➔ Asynchronous ➔ Event ➔ Better for commands
  • 20. is a Kubernetes extension that allows you to deploy and manage modern serverless apps. Knative
  • 21. 21 Knative in OpenShift ➔ Knative is a CNCF Open Source project ➔ A community driven by multiple stakeholders https://knative.dev ◆ Supported by Google, Red Hat, IBM, VMware, TriggerMesh, SAP and more ➔ OpenShift Serverless: https://www.openshift.com/learn/topics/serverless ➔ Latest production-ready release: 1.28.0 (Knative 1.7)
  • 22. Demo
  • 24. Resources ● github.com / wavesoftware / passless-operator ● github.com / cardil / cabs-usvc ● developers.redhat.com ● bit.ly/knative-tutorial