SlideShare a Scribd company logo
1 of 63
Download to read offline
natansil.com twitter@NSilnitsky linkedin/natansilnitsky github.com/natansil
Battle-tested event-driven patterns for
your microservices architecture
Natan Silnitsky
Backend Infra Developer, Wix.com
>200M registered users (website builders) from 190 countries
5% of all Internet websites run on Wix
2,000 Microservices
1.5B Kafka messages produced / Day
@NSilnitsky
At Wix
* Event driven uses cases
Agenda
Event-driven microservices
Event-driven patterns:
• Consume and Project
• Event-driven from end to end
• 0-latency KV Store
• Events in Transactions
* Monolithic
@NSilnitsky
Microservices
The Monolith
@NSilnitsky * Separately
Monolith to Distributed Microservices System
Microservices
@NSilnitsky
Microservices
Decoupled Microservices
Mutable
Contention
Choice
@NSilnitsky
Microservices
Data Encapsulation
* flexibility, schema
What about microservices
communication?
@NSilnitsky
Request-reply
communication
Microservices Communication
Checkout
Service
User
Service
Inventory
Service
Payments
Service
* ecom example
@NSilnitsky
Request-reply
communication
Microservices Communication
Request-Reply Model
HTTP
RPC
HTTP RPC
HTTP RPC
Checkout
Service
Payments
Service
Inventory
Service
User
Service
@NSilnitsky
Request-reply
communication
* 1 by 1- slow
Microservices Communication
Request-Reply Model
Checkout
Service
@NSilnitsky
Request-reply
communication
Microservices Communication
Request-Reply Model
Checkout
Service
Inventory
Service
Broker
@NSilnitsky * Reliability
Event-driven
communications
Introduce a message broker in between services
Message
Consumer
Message
Producer
@NSilnitsky * Not ineteract directly
Order created
Event-driven
communications
Introduce a message broker in between services
Event-driven model
Message
Consumer
Flow control is moved from the sender
Broker
Message
Producer
@NSilnitsky
Order created
Event-driven
communications
Introduce a message broker in between services
Event-driven model
Message
Consumer
Flow control is moved from the sender
to the receiver.
Broker
Message
Producer
* more robust
Kafka Broker
Topic
Partition
Partition
Partition
@NSilnitsky * Linear scaling
Introduce a message broker in between services
Distributed log broker
Event-driven
communications
Message
Consumer
Message
Producer
@NSilnitsky
Append-only log
Introduce a message broker in between services
Distributed log broker
Event-driven
communications
Kafka Broker
Topic
Partition
Message
Consumer
Message
Producer
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
Order Created Topic
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
@NSilnitsky
* Data retained,
Immutable
Introduce a message broker in between services
Distributed log broker
Event-driven
communications
Message
Consumer
Message
Producer
Kafka Broker
@NSilnitsky * eventually consumed
Distributed log broker eventually consume
Event-driven
communications
Order Created Topic
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
Message
Consumer
Message
Producer
Kafka Broker
Checkout
Service
Event-driven
communications
Microservices communication & data
Event driven model
User
Service
Inventory
Service
Cart
Service
Payments
Service
@NSilnitsky
Checkout
Service
Cart
Service
Inventory
Service
Payments
Service
User
Service
Event-driven
communications
Microservices communication & data
Event driven model
Kafka Broker
Orders
Partition
Partition
Partition
Users
Partition
Partition
Partition
Cart
Partition
Partition
Partition
Inventory
Partition
Partition
Partition
Agenda
Event-driven microservices
Event-driven patterns:
• Consume and Project
• Event-driven from end to end
• 0-latency KV Store
• Events in Transactions
* used daily. blog
Consume
and Project
01
MetaSite
RPC
Wix
Stores
Wix
Bookings
Wix
Restaurants
RPC
RPC
@NSilnitsky
Consume and
Project
For Popular Services
MetaSite
RPC
Wix
Stores
Wix
Bookings
Wix
Restaurants
RPC
RPC
@NSilnitsky
Consume and
Project
Site installed Apps?
Site version?
Site owner?
MetaSite
RPC
Wix
Stores
Wix
Bookings
Wix
Restaurants
RPC
RPC
@NSilnitsky
Consume and
Project
Request
overload
Site installed Apps?
Site version?
Site owner?
(~1M RPM requests)
Read +
Writes
Large
MetaSite
Object
Request
overload
MetaSite
RPC
Wix
Stores
Wix
Bookings
Wix
Restaurants
RPC
RPC
@NSilnitsky
Consume and
Project
Site installed Apps?
Site version?
Site owner?
Read +
Writes
Large
MetaSite
Object
(~1M RPM requests)
Kafka Broker
Produce
to Kafka
Producer
MetaSite
Site
Updated!
Consume and
Project
Entire MetaSite
Context
Kafka Broker
Filter
Site installed
Apps Updated!
Installed Apps
Context
Produce
to Kafka
Consume
and Project
MetaSite
Consumer
Reverse
lookup
writer
Consume and
Project
Producer
Kafka Broker
Installed Apps
Context
Produce
to Kafka
Consume
and Project
MetaSite
Reverse
lookup
writer
Reverse
lookup
reader
RPC
RPC
RPC
Split Read
from Write
Consume and
Project
Producer Consumer
Consume and Project
— Produce instead of serve - massive load reduction
— Project - client-query-optimized “Materialized View”
— Read/write split - only scale read-only DB. more resilient
Event-driven
from end to end
02
Kafka Broker
Consumer
Browser
Producer
Contacts
Importer
Service
Contacts
Jobs
Service
Web
Sockets
Service
@NSilnitsky
Event-driven
from end to end
Use case:
Long-running async business process
Subscribe for notifications
Consumer
Producer
Browser
@NSilnitsky
Event-driven
from end to end
Use case:
Long-running async business process
Kafka Broker
Web
Sockets
Service
Import CSVs
Consumer
Producer
Browser
@NSilnitsky
Event-driven
from end to end
Use case:
Long-running async business process
Kafka Broker
Web
Sockets
Service
Web
Sockets
Service
Consumer
* Distributed
Producer
Browser
done!
Event-driven
from end to end
Use case:
Long-running async business process
Kafka Broker
Web
Sockets
Service
Consumer
* Distributed
Producer
Browser
Cross DC!
Event-driven
from end to end
Use case:
Long-running async business process
Kafka Broker
done!
Event-Driven from End to End
— No polling - notify the user on any status change
— Scalable - spin up many import job workers
— Replication - cross-DC requests are easy to set up
0-latency
KV Store
03
Kafka Broker
Configuration Topic
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
5
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
K1
V1
K2
V1
K1
V2
K3
V1
K4
V1
K5
V1
@NSilnitsky
Producer
Key - value
Consumer
0-latency
KV Store
Compacted Kafka
Topics
Kafka Broker
Consumer
KVStoreReader
In-Memory Map
Compacted Topic
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
K1
V1
K2
V1
K1
V2
K3
V1
K4
V1
K5
V1
Key Value
K1 V1
K2 V1
* Startup
0-latency
KV Store
@NSilnitsky
Compacted Kafka
Topics
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
K1
V1
K2
V1
K1
V2
K3
V1
K4
V1
K5
V1
@NSilnitsky
0-latency
KV Store
Kafka Broker
Consumer
KVStoreReader
In-Memory Map
Key Value
K1 V1 -> V2
K2 V1
K3 V1
Compacted Kafka
Topics
* Finished
Compacted Topic
Consumer
Consumer
Bookings
Business
Manager
KVStoreReader
Time Zones
Key Value
Albania UTC+1
Algeria UTC+1
Andorra UTC+1
Time Zones
KVStoreReader
Countries
Key Value
Albania .al
Algeria .dz
Andorra .ad
Countries
@NSilnitsky
0-latency
KV Store
Kafka Broker
Producer
Kafka Broker
Consumer
Bookings
Business
Manager
KVStoreReader
Countries
Countries
*New*
South Sudan
KVStoreWriter
Countries
@NSilnitsky
0-latency
KV Store
* Writer producer
Kafka Broker
Producer
Bookings
KVStoreWriter
Time Zones
Time Zones
Consumer
KVStoreReader
Time Zones
Key Value
Albania UTC+1
...
South Sudan UTC+3
*New*
Time Zone for
South Sudan
*New* Country
South Sudan
@NSilnitsky
0-latency
KV Store
Kafka Broker
Producer
Bookings
KVStoreWriter
Time Zones
Time Zones
Consumer
KVStoreReader
Time Zones
Key Value
Albania UTC+2
Algeria UTC+1
Andorra UTC+1 *New*
Time Zone for
Albania
Consumer
Events
KVStoreReader
Time Zones
DST in-effect for
Albania
@NSilnitsky
0-latency
KV Store
0-latency KV Store
— Loading the compacted topic to memory –
a 0-latency kv store for dynamic configuration
— Compacted topic is still a topic –
other services can consume its update events
— Small Datasets - for large datasets, the topic should be
streamed to a disk-based DB + In-memory Cache
Events in
Transactions
04 * idempotent
Payment
Completed
Payments
Kafka Broker
Producer
Events in
Transactions
Classic Ecommerce Flow
Payments Checkout
Kafka Broker
Producer Consumer Producer
Order (Items)
Completed
Events in
Transactions
Classic Ecommerce Flow
Payment
Completed
Payments Checkout
Inventory
Kafka Broker
Producer Consumer Producer Consumer
Delivery
Consumer
Consumer
Invoices
Events in
Transactions
Classic Ecommerce Flow
Producer Consumer Producer Consumer
Consumer
Consumer Completed
Orders
Events in
Transactions
Kafka Broker
Classic Ecommerce Flow
Producer
Events in
Transactions
Kafka Broker
Enable.idempotence = true
Attaches offset to
message
Classic Ecommerce Flow
Idempotent
Producer
Events in
Transactions
Kafka Broker
Classic Ecommerce Flow
Events in
Transactions
Kafka Broker
Producer
0 1 2 3 4 5
0 1
duplicate!
1
Payments
Idempotent
Producer
Transaction Scope
Consumer Producer Consumer
Consumer
Consumer
Producer
Events in
Transactions
Kafka Broker
Events in Transactions
— Events transactions are quite complex –
More boilerplate, performance tuning via transaction size.
— DB updates/3rd party calls are not covered –
You can dedup by using Kafka record offset as version
— Don’t turn on transactions by default -
Use in critical flows like payments processing
Wix developers have employed these
event-driven patterns to make their
microservices more decoupled,
resilient and scalable.
A Scala/Java high-level SDK for Apache Kafka.
0.2 is out!
github.com/wix/greyhound
Thank You
natansil.com twitter@NSilnitsky linkedin/natansilnitsky github.com/natansil
Resources
6 Event Driven Architecture Patterns - Part 1 & Part 2 - by Natan Silnitsky
The Data Dichotomy: Rethinking the Way We Treat Data and Services -
by Ben Stopford
Shared Database - by Chris Richardson
Exactly once delivery - DevOpsDay TLV 2019 - By Natan Silnitsky
@NSilnitsky
Slides & More
slideshare.net/NatanSilnitsky
medium.com/@natansil
twitter.com/NSilnitsky
natansil.com

More Related Content

What's hot

What's hot (20)

Battle Tested Event-Driven Patterns for your Microservices Architecture - Dev...
Battle Tested Event-Driven Patterns for your Microservices Architecture - Dev...Battle Tested Event-Driven Patterns for your Microservices Architecture - Dev...
Battle Tested Event-Driven Patterns for your Microservices Architecture - Dev...
 
Building Event-Driven Microservices using Kafka Streams (Stathis Souris, Thou...
Building Event-Driven Microservices using Kafka Streams (Stathis Souris, Thou...Building Event-Driven Microservices using Kafka Streams (Stathis Souris, Thou...
Building Event-Driven Microservices using Kafka Streams (Stathis Souris, Thou...
 
Evolving from Messaging to Event Streaming
Evolving from Messaging to Event StreamingEvolving from Messaging to Event Streaming
Evolving from Messaging to Event Streaming
 
Concepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaConcepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with Kafka
 
Kafka summit apac session
Kafka summit apac sessionKafka summit apac session
Kafka summit apac session
 
Introducing Change Data Capture with Debezium
Introducing Change Data Capture with DebeziumIntroducing Change Data Capture with Debezium
Introducing Change Data Capture with Debezium
 
Ten reasons to choose Apache Pulsar over Apache Kafka for Event Sourcing_Robe...
Ten reasons to choose Apache Pulsar over Apache Kafka for Event Sourcing_Robe...Ten reasons to choose Apache Pulsar over Apache Kafka for Event Sourcing_Robe...
Ten reasons to choose Apache Pulsar over Apache Kafka for Event Sourcing_Robe...
 
Stream processing for the masses with beam, python and flink
Stream processing for the masses with beam, python and flink Stream processing for the masses with beam, python and flink
Stream processing for the masses with beam, python and flink
 
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
 
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
 
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
Introduction to Stream Processing with Apache Flink (2019-11-02 Bengaluru Mee...
 
Events Everywhere: Enabling Digital Transformation in the Public Sector
Events Everywhere: Enabling Digital Transformation in the Public SectorEvents Everywhere: Enabling Digital Transformation in the Public Sector
Events Everywhere: Enabling Digital Transformation in the Public Sector
 
A guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update ConferenceA guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update Conference
 
Removing performance bottlenecks with Kafka Monitoring and topic configuration
Removing performance bottlenecks with Kafka Monitoring and topic configurationRemoving performance bottlenecks with Kafka Monitoring and topic configuration
Removing performance bottlenecks with Kafka Monitoring and topic configuration
 
Real time analytics in Azure IoT
Real time analytics in Azure IoT Real time analytics in Azure IoT
Real time analytics in Azure IoT
 
Event Driven Architectures with Apache Kafka on Heroku
Event Driven Architectures with Apache Kafka on HerokuEvent Driven Architectures with Apache Kafka on Heroku
Event Driven Architectures with Apache Kafka on Heroku
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQL
 
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it YourselfWhy Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
 
Death of the dumb pipes: Using Apache Kafka® for Integration projects
Death of the dumb pipes: Using Apache Kafka® for Integration projectsDeath of the dumb pipes: Using Apache Kafka® for Integration projects
Death of the dumb pipes: Using Apache Kafka® for Integration projects
 
Redis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns SimplifiedRedis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns Simplified
 

Similar to Battle-tested event-driven patterns for your microservices architecture - Scalac conference

Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Luis Lopez
 

Similar to Battle-tested event-driven patterns for your microservices architecture - Scalac conference (20)

Battle-tested event-driven patterns for your microservices architecture - Sca...
Battle-tested event-driven patterns for your microservices architecture - Sca...Battle-tested event-driven patterns for your microservices architecture - Sca...
Battle-tested event-driven patterns for your microservices architecture - Sca...
 
Battle Tested Event-Driven Patterns for your Microservices Architecture
Battle Tested Event-Driven Patterns for your Microservices ArchitectureBattle Tested Event-Driven Patterns for your Microservices Architecture
Battle Tested Event-Driven Patterns for your Microservices Architecture
 
Battle Tested Event-Driven Patterns for your Microservices Architecture - Ris...
Battle Tested Event-Driven Patterns for your Microservices Architecture - Ris...Battle Tested Event-Driven Patterns for your Microservices Architecture - Ris...
Battle Tested Event-Driven Patterns for your Microservices Architecture - Ris...
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
 
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
 
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
 
Colt Network On Demand
Colt Network On DemandColt Network On Demand
Colt Network On Demand
 
Set Your Data In Motion - CTO Roundtable
Set Your Data In Motion - CTO RoundtableSet Your Data In Motion - CTO Roundtable
Set Your Data In Motion - CTO Roundtable
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
 
Advanced Caching Patterns used by 2000 microservices - Code Motion
Advanced Caching Patterns used by 2000 microservices - Code MotionAdvanced Caching Patterns used by 2000 microservices - Code Motion
Advanced Caching Patterns used by 2000 microservices - Code Motion
 
Real-Time Event Processing
Real-Time Event ProcessingReal-Time Event Processing
Real-Time Event Processing
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven MicroservicesBuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
 
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka EcosystemBuilding event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka Ecosystem
 
Open Standards Enabling Digital Transformation
Open Standards Enabling Digital TransformationOpen Standards Enabling Digital Transformation
Open Standards Enabling Digital Transformation
 
Managing and Implementing Network Function Virtualization with Intelligent OSS
Managing and Implementing Network Function Virtualization with Intelligent OSSManaging and Implementing Network Function Virtualization with Intelligent OSS
Managing and Implementing Network Function Virtualization with Intelligent OSS
 
Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20
 
Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
 

More from Natan Silnitsky

More from Natan Silnitsky (20)

Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
 
DevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservicesDevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservices
 
GeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservicesGeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservices
 
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaILMigrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
 
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven MicroservicesWix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
 
Lessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - ReversimLessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - Reversim
 
Devoxx Ukraine - Kafka based Global Data Mesh
Devoxx Ukraine - Kafka based Global Data MeshDevoxx Ukraine - Kafka based Global Data Mesh
Devoxx Ukraine - Kafka based Global Data Mesh
 
Devoxx UK - Migrating to Multi Cluster Managed Kafka
Devoxx UK - Migrating to Multi Cluster Managed KafkaDevoxx UK - Migrating to Multi Cluster Managed Kafka
Devoxx UK - Migrating to Multi Cluster Managed Kafka
 
Dev Days Europe - Kafka based Global Data Mesh at Wix
Dev Days Europe - Kafka based Global Data Mesh at WixDev Days Europe - Kafka based Global Data Mesh at Wix
Dev Days Europe - Kafka based Global Data Mesh at Wix
 
Kafka Summit London - Kafka based Global Data Mesh at Wix
Kafka Summit London - Kafka based Global Data Mesh at WixKafka Summit London - Kafka based Global Data Mesh at Wix
Kafka Summit London - Kafka based Global Data Mesh at Wix
 
Migrating to Multi Cluster Managed Kafka - Conf42 - CloudNative
Migrating to Multi Cluster Managed Kafka - Conf42 - CloudNative Migrating to Multi Cluster Managed Kafka - Conf42 - CloudNative
Migrating to Multi Cluster Managed Kafka - Conf42 - CloudNative
 
5 Takeaways from Migrating a Library to Scala 3 - Scala Love
5 Takeaways from Migrating a Library to Scala 3 - Scala Love5 Takeaways from Migrating a Library to Scala 3 - Scala Love
5 Takeaways from Migrating a Library to Scala 3 - Scala Love
 
Migrating to Multi Cluster Managed Kafka - DevopStars 2022
Migrating to Multi Cluster Managed Kafka - DevopStars 2022Migrating to Multi Cluster Managed Kafka - DevopStars 2022
Migrating to Multi Cluster Managed Kafka - DevopStars 2022
 
Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021
 
How to successfully manage a ZIO fiber’s lifecycle - Functional Scala 2021
How to successfully manage a ZIO fiber’s lifecycle - Functional Scala 2021How to successfully manage a ZIO fiber’s lifecycle - Functional Scala 2021
How to successfully manage a ZIO fiber’s lifecycle - Functional Scala 2021
 
Advanced Caching Patterns used by 2000 microservices - Devoxx Ukraine
Advanced Caching Patterns used by 2000 microservices - Devoxx UkraineAdvanced Caching Patterns used by 2000 microservices - Devoxx Ukraine
Advanced Caching Patterns used by 2000 microservices - Devoxx Ukraine
 
Advanced Microservices Caching Patterns - Devoxx UK
Advanced Microservices Caching Patterns - Devoxx UKAdvanced Microservices Caching Patterns - Devoxx UK
Advanced Microservices Caching Patterns - Devoxx UK
 
Advanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api WorldAdvanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api World
 

Recently uploaded

Recently uploaded (20)

Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 

Battle-tested event-driven patterns for your microservices architecture - Scalac conference