SlideShare a Scribd company logo
natansil.com twitter@NSilnitsky linkedin/natansilnitsky github.com/natansil
8 Lessons Learned from using Kafka
with 1000 Scala microservices
Natan Silnitsky
Backend Infra Developer, Wix.com
>180M registered users (website builders) from 190 countries
5% of all Internet websites run on Wix
4000+ people work at Wix
>500B HTTP Requests / Day
6PB of static content
At Wix
@NSilnitsky
Kafka Messages per day
Microservices
(Service) Developers
300M 1510M
500 1500
300 900
2017 2020
At Wix
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#1 Common Infra
with common
features.What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
Kafka
Consumer
Kafka
Producer
Kafka Broker
Greyhound
Wraps
Kafka
Service A Service B
@NSilnitsky
Kafka
Consumer
Kafka
Producer
Kafka Broker
Greyhound
Wraps
Kafka
Service A Service B
@NSilnitsky
Kafka
Consumer
Kafka
Producer
Kafka Broker
Service A Service B
Abstract
so that it is easy to
change for everyone
Simplify
APIs, with additional
features
Greyhound
Wraps
Kafka
Kafka
Consumer
Kafka
Producer
Kafka Broker
Service A Service B
Scala ZIO
+ Java API
Greyhound
Wraps
Kafka
@NSilnitsky
Greyhound
Wraps
Kafka
Simple Consumer API
- Boilerplate
val consumer: KafkaConsumer[String, SomeMessage] =
createConsumer()
def pollProcessAndCommit(): Unit = {
val consumerRecords = consumer.poll(1000).asScala
consumerRecords.foreach(record => {
println(s"Record value: ${record.value.messageValue}")
})
consumer.commitAsync()
pollProcessAndCommit()
}
pollProcessAndCommit()
Kafka
Consumer API
* Broker location, serde
val consumer: KafkaConsumer[String, SomeMessage] =
createConsumer()
def pollProcessAndCommit(): Unit = {
val consumerRecords = consumer.poll(1000).asScala
consumerRecords.foreach(record => {
println(s"Record value: ${record.value.messageValue}")
})
consumer.commitAsync()
pollProcessAndCommit()
}
pollProcessAndCommit()
Kafka
Consumer API
val consumer: KafkaConsumer[String, SomeMessage] =
createConsumer()
def pollProcessAndCommit(): Unit = {
val consumerRecords = consumer.poll(1000).asScala
consumerRecords.foreach(record => {
println(s"Record value: ${record.value.messageValue}")
})
consumer.commitAsync()
pollProcessAndCommit()
}
pollProcessAndCommit()
Kafka
Consumer API
val handler: RecordHandler[Console, Nothing,
String, SomeMessage] =
RecordHandler { record =>
zio.console.putStrLn(record.value.messageValue)
}
GreyhoundConsumersBuilder
.withConsumer(GreyhoundConsumer(
topic = "some-group",
group = "group-2",
handle = handler))
Greyhound
Consumer API
* No explicit commit, broker location
+ Parallel
Consumption!
Greyhound
Wraps
Kafka
Simple Consumer API
val consumer: KafkaConsumer[String, SomeMessage] =
createConsumer()
def pollProcessAndCommit(): Unit = {
val consumerRecords = consumer.poll(1000).asScala
consumerRecords.foreach(record => {
println(s"Record value: ${record.value.messageValue}")
})
consumer.commitAsync()
pollProcessAndCommit()
}
pollProcessAndCommit()
Kafka
Consumer API
Kafka Broker
Site
Chat-bot-m
essages
Topic
Greyhound
Consumer
Kafka
Consumer
ZIO FIBERS + QUEUES
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
(THREAD-SAFE)
PARALLEL
CONSUMPTION
@NSilnitsky
+ Retries!
...what about
Error handling?
Greyhound
Wraps
Kafka
Simple Consumer API
Thread-safe Parallel Consumption
val retryConfig = RetryConfig.nonBlocking(
1.second, 10.minutes)
GreyhoundConsumersBuilder
.withConsumer(GreyhoundConsumer(
topic = "some-group",
group = "group-2",
handle = handler,
retryConfig = retryConfig))
Non-blocking
Retries
Kafka Broker
renew-sub-topic
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
Greyhound Consumer
Kafka Consumer
FAILS TO
READ
@NSilnitsky
Kafka Broker
renew-sub-topic
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
renew-sub-topic-retry-0
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
renew-sub-topic-retry-1
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
Inspired by Uber
RETRY!
Greyhound Consumer
Kafka Consumer
RETRY
PRODUCER
@NSilnitsky
#2 Retry Topics will
cause your cluster to
grow faster. 😐
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#1 Common Infra
Kafka Broker
renew-sub-topic-retry-0
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
renew-sub-topic-retry-1
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
Kafka Broker
renew-sub-topic
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
renew-sub-topic-retry-N
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
RETRY!
Inspired by Uber
@NSilnitsky
Kafka Broker
renew-sub-topic-retry-0
0 1 2 3 4 5
renew-sub-topic-retry-1
0 1 2 3 4 5
Kafka Broker
renew-sub-topic
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
renew-sub-topic-retry-N
RETRY!
Inspired by Uber
0 2 3 4 51
@NSilnitsky
Retries same message on failure
* lag
BLOCKING
POLICY
HANDLER
Kafka Broker
source-control-
update-topic
0 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 50 1 2 3 4 5
Greyhound Consumer
Kafka Consumer
build-log-service
BLOCKING
POLICY
HANDLER
@NSilnitsky
+ Context Propagation
Super
cool
for us
Greyhound
Wraps
Kafka
Simple Consumer API
Thread-safe Parallel Consumption
Scheduled retries & blocking handler
CONTEXT
PROPAGATION
Language
User
Type
USER REQUEST METADATA
Sign up
Site-Members
Service
Browser
Geo
...
@NSilnitsky
CONTEXT
PROPAGATION
Sign up
Site-Members
Service
Browser
Kafka Broker
Producer
Topic/Partition/Offset
Headers
Key
Value
timestamp
CONTEXT
PROPAGATION
Sign up
Site-Members
Service
Browser
Kafka Broker
Producer
Contacts
Service
Consumer
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#3 Self-service
tooling and
documentation.
#2 Retry Topics - bigger cluster
#1 Common Infra
Our
team
Our
team
Self-service
Tools & Docs
1. Kafka CLI scripts (+ flags)
2. Yahoo Kafka Manager (OSS)
3. Confluent Control Centre
4. A control plane of our own
Self-service
Tools
Self-service
Tools
@NSilnitsky
Self-service
Tools
@NSilnitsky
Self-service
Tools
Self-service
Tools
Self-service
Tools
Self-service
Tools
Self-service
Tools
@NSilnitsky
Self-service
Docs
How do I investigate this lag?
How do I add retries on errors?
1. Github Readme for Greyhound code
2. Internal StackOverflow Q&A
3. Slack bot that answers without you
Self-service
Docs
Self-service
Docs
@NSilnitsky
Self-service
Docs
Discover
topics and
message
structure.
@NSilnitsky
protobuf
internal
API site
Self-service
Docs
Discover
topics and
message
structure.
Message
structure
defined in...
And exposed
with...
@NSilnitsky
protobuf
internal
API site
Self-service
Docs
Discover
topics and
message
structure.
Or… avro
schema
registry
Message structure
defined in...
And exposed
with...
@NSilnitsky
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#4 Async event
driven monitoring
is less trivial.
#3 Self-service tooling & docs
#2 Retry Topics - bigger cluster
#1 Common Infra
ALERTS
METRICS
PUBLISHING
Producer
Consumer
Slack
emailKafka Broker
Metrics Server
@NSilnitsky
#5 Proactive
broker maintenance.
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#4 Non-trivial Monitoring
#3 Self-service tooling & docs
#2 Retry Topics - bigger cluster
#1 Common Infra
● Add brokers when needed
● Split clusters when needed
● Delete unused topics
● Avoid hard failures
As a rule of thumb, we recommend each broker to have up to 4,000 partitions
and each cluster to have up to 200,000 partitions.
https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions
Don’t let brokers break...
@NSilnitsky
We’re migrating to Confluent Cloud
@NSilnitsky
● High Availability
● Don’t need to worry about
scaling clusters
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#6 Avoid using
Kafka SDK
directly in nodeJs
#5 Proactive broker maintenance
#4 Non-trivial Monitoring
#3 Self-service tooling & docs
#2 Retry Topics - bigger cluster
#1 Common Infra
Greyhound
Kafka Broker
Producer Consumer
Scala
services
NodeJS
services
ConsumerProducer
Single
Event loop
@NSilnitsky
Greyhound
Kafka Broker
Producer Consumer
Scala
services
NodeJS
services
ConsumerProducer
Single
Event loop
✘
@NSilnitsky
* memory
Greyhound
Kafka Broker
Consumer
Sidecar
(Or REST Proxy)
gRPC
NodeJS
services
Single
Event loop
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#7 Consume and
project
#5 Proactive broker maintenance
#4 Non-trivial Monitoring
#3 Self-service tooling & docs
#2 Retry Topics - bigger cluster
#1 Common Infra
#6 Avoid nodeJs SDK
MetaSite
Site
installed
Apps?
RPC
Wix
Stores
Wix
Bookings
Wix
Restaurants
Site
version?
Site owner?
The Popular
Flow
RPC
RPC
@NSilnitsky
Read +
Writes
Large
MetaSite
Object
Request overload
(~1M RPM requests)
MetaSite
Site
installed
Apps?
RPC
Wix
Bookings
Wix
Restaurants
Site
version?
Site owner?
RPC
RPC
Wix
Stores
@NSilnitsky
Read +
Writes
Large
MetaSite
Object
Request overload
(~1M RPM requests)
MetaSite
Site
installed
Apps?
RPC
Wix
Bookings
Wix
Restaurants
Site
version?
Site owner?
RPC
RPC
Wix
Stores
@NSilnitsky
Entire
MetaSite
Context
1. Produce
to Kafka
Kafka
Broker
Producer
MetaSite
Site
Updated!
Kafka
Broker
Filter
Site installed
Apps Updated!
Installed
Apps
Context
1. Produce
to Kafka
2. Consume
and Project
Producer
MetaSite
Site
Updated!
Consumer
Reverse
lookup
writer
Kafka
Broker
Filter
Site installed
Apps Updated!
Installed
Apps
Context
1. Produce
to Kafka
2. Consume
and Project
Producer
MetaSite
Site
Updated!
Consumer
Reverse
lookup
writer
Reverse
lookup
reader
RPC
RPC
RPC
3. Split Read
from Write
Kafka messaging is event driven.
It is only relevant to service-service communications,
not for browser-server interactions, where a user is waiting,
right?
@NSilnitsky
Kafka messaging is event driven.
It is only relevant to service-service communications,
not for browser-server interactions, where a user is waiting,
right? Wrong.
@NSilnitsky
What do you do
when the traffic,
meta-data, and amount of
developers and use cases
grow?
#8 WebSockets
are Kafka’s best
friend
#7 Consume and project
#5 Proactive broker maintenance
#4 Non-trivial Monitoring
#3 Self-service tooling & docs
#2 Retry Topics - bigger cluster
#1 Common Infra
#6 Avoid nodeJs SDK
Completely distributed
and event driven
Kafka
WebSockets
+
=
@NSilnitsky
Kafka Broker
Consumer
Browser
Producer
Contacts
Importer
Contacts
Jobs
Web
Sockets
Service
Use Case:
Long-running async
business process
@NSilnitsky
Kafka Broker
Subscribe for notifications
ConsumerProducer
Use Case:
Long-running async
business process
Contacts
Importer
Contacts
Jobs
Browser Web
Sockets
Service
@NSilnitsky
Kafka Broker
Import
CSVs
ConsumerProducer
Use Case:
Long-running async
business process
Contacts
Importer
Contacts
Jobs
Browser Web
Sockets
Service
@NSilnitsky
Web
Sockets
Service
Kafka Broker
Consumer
* distributed
Use Case:
Long-running async
business process
Producer
Contacts
Jobs
Browser
done!
Contacts
Importer
So,
What do you do
when the traffic, meta-data,
and amount of developers and
use cases grow?
Wix
Created an entire
ecosystem to support large-scale
Kafka-related needs.
A Java/Scala high-level SDK for Apache Kafka.
0.1 is out!
github.com/wix/greyhound
Thank You
natansil.com twitter@NSilnitsky linkedin/natansilnitsky github.com/natansil
Slides & More
slideshare.net/NatanSilnitsky
medium.com/@natansil
twitter.com/NSilnitsky
natansil.com

More Related Content

What's hot (20)

PDF
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
confluent
 
PDF
Apache Kafka - Scalable Message-Processing and more !
Guido Schmutz
 
PDF
Introducing Kafka's Streams API
confluent
 
PDF
Hello, kafka! (an introduction to apache kafka)
Timothy Spann
 
PDF
Event Driven Architectures with Apache Kafka on Heroku
Heroku
 
PDF
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Guozhang Wang
 
PPTX
Gluecon - Kafka and the service mesh
Gwen (Chen) Shapira
 
PDF
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
confluent
 
PDF
10 Lessons Learned from using Kafka with 1000 microservices - java global summit
Natan Silnitsky
 
PDF
Understanding Apache Kafka® Latency at Scale
confluent
 
PDF
Stream Me Up, Scotty: Transitioning to the Cloud Using a Streaming Data Platform
confluent
 
PDF
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
HostedbyConfluent
 
PDF
Kafka Pluggable Authorization for Enterprise Security (Anna Kepler, Viasat) K...
confluent
 
PDF
Kafka summit apac session
Christina Lin
 
PDF
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
PDF
Five Fabulous Sinks for Your Kafka Data. #3 will surprise you! (Rachel Pedres...
confluent
 
PDF
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Natan Silnitsky
 
PDF
Tips & Tricks for Apache Kafka®
confluent
 
PDF
From Newbie to Highly Available, a Successful Kafka Adoption Tale (Jonathan S...
confluent
 
PDF
Common issues with Apache Kafka® Producer
confluent
 
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
confluent
 
Apache Kafka - Scalable Message-Processing and more !
Guido Schmutz
 
Introducing Kafka's Streams API
confluent
 
Hello, kafka! (an introduction to apache kafka)
Timothy Spann
 
Event Driven Architectures with Apache Kafka on Heroku
Heroku
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Guozhang Wang
 
Gluecon - Kafka and the service mesh
Gwen (Chen) Shapira
 
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
confluent
 
10 Lessons Learned from using Kafka with 1000 microservices - java global summit
Natan Silnitsky
 
Understanding Apache Kafka® Latency at Scale
confluent
 
Stream Me Up, Scotty: Transitioning to the Cloud Using a Streaming Data Platform
confluent
 
Everything you ever needed to know about Kafka on Kubernetes but were afraid ...
HostedbyConfluent
 
Kafka Pluggable Authorization for Enterprise Security (Anna Kepler, Viasat) K...
confluent
 
Kafka summit apac session
Christina Lin
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
Five Fabulous Sinks for Your Kafka Data. #3 will surprise you! (Rachel Pedres...
confluent
 
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Natan Silnitsky
 
Tips & Tricks for Apache Kafka®
confluent
 
From Newbie to Highly Available, a Successful Kafka Adoption Tale (Jonathan S...
confluent
 
Common issues with Apache Kafka® Producer
confluent
 

Similar to 8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the Bay (20)

PDF
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
 
PDF
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Natan Silnitsky
 
PPTX
Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...
HostedbyConfluent
 
PDF
Resilient Event Driven Systems With Kafka
Iccha Sethi
 
PDF
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Guido Schmutz
 
PDF
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Spark Summit
 
PDF
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
Joan Viladrosa Riera
 
PDF
Apache Kafka - Scalable Message-Processing and more !
Guido Schmutz
 
PDF
Greyhound - Powerful Functional Kafka Library - Devtalks reimagined
Natan Silnitsky
 
PDF
Advanced Caching Patterns used by 2000 microservices - Code Motion
Natan Silnitsky
 
PDF
Devoxx university - Kafka de haut en bas
Florent Ramiere
 
PDF
Spark Streaming + Kafka 0.10: an integration story by Joan Viladrosa Riera at...
Big Data Spain
 
PDF
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Guido Schmutz
 
PDF
Can Kafka Handle a Lyft Ride? (Andrey Falko & Can Cecen, Lyft) Kafka Summit 2020
HostedbyConfluent
 
PDF
Exactly once delivery is a harsh mistress - DevOps Days TLV
Natan Silnitsky
 
PDF
Exactly Once Delivery is a Harsh Mistress - Natan Silnitsky
DevOpsDays Tel Aviv
 
PDF
Spark streaming + kafka 0.10
Joan Viladrosa Riera
 
PDF
Advanced Microservices Caching Patterns - Devoxx UK
Natan Silnitsky
 
PDF
Advanced Caching Patterns used by 2000 microservices - Devoxx Ukraine
Natan Silnitsky
 
PDF
Advanced Caching Patterns used by 2000 microservices - Api World
Natan Silnitsky
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
 
Polyglot, fault-tolerant event-driven programming with kafka, kubernetes and ...
Natan Silnitsky
 
Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...
HostedbyConfluent
 
Resilient Event Driven Systems With Kafka
Iccha Sethi
 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Guido Schmutz
 
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Spark Summit
 
[Spark Summit EU 2017] Apache spark streaming + kafka 0.10 an integration story
Joan Viladrosa Riera
 
Apache Kafka - Scalable Message-Processing and more !
Guido Schmutz
 
Greyhound - Powerful Functional Kafka Library - Devtalks reimagined
Natan Silnitsky
 
Advanced Caching Patterns used by 2000 microservices - Code Motion
Natan Silnitsky
 
Devoxx university - Kafka de haut en bas
Florent Ramiere
 
Spark Streaming + Kafka 0.10: an integration story by Joan Viladrosa Riera at...
Big Data Spain
 
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Guido Schmutz
 
Can Kafka Handle a Lyft Ride? (Andrey Falko & Can Cecen, Lyft) Kafka Summit 2020
HostedbyConfluent
 
Exactly once delivery is a harsh mistress - DevOps Days TLV
Natan Silnitsky
 
Exactly Once Delivery is a Harsh Mistress - Natan Silnitsky
DevOpsDays Tel Aviv
 
Spark streaming + kafka 0.10
Joan Viladrosa Riera
 
Advanced Microservices Caching Patterns - Devoxx UK
Natan Silnitsky
 
Advanced Caching Patterns used by 2000 microservices - Devoxx Ukraine
Natan Silnitsky
 
Advanced Caching Patterns used by 2000 microservices - Api World
Natan Silnitsky
 
Ad

More from Natan Silnitsky (20)

PDF
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
PDF
Integration Ignited Redefining Event-Driven Architecture at Wix - EventCentric
Natan Silnitsky
 
PDF
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
PDF
Async Excellence Unlocking Scalability with Kafka - Devoxx Greece
Natan Silnitsky
 
PDF
Wix Single-Runtime - Conquering the multi-service challenge
Natan Silnitsky
 
PDF
WeAreDevs - Supercharge Your Developer Journey with Tiny Atomic Habits
Natan Silnitsky
 
PDF
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
PDF
Effective Strategies for Wix's Scaling challenges - GeeCon
Natan Silnitsky
 
PDF
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Natan Silnitsky
 
PDF
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Natan Silnitsky
 
PDF
DevSum - Lessons Learned from 2000 microservices
Natan Silnitsky
 
PDF
GeeCon - Lessons Learned from 2000 microservices
Natan Silnitsky
 
PDF
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Natan Silnitsky
 
PDF
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
PDF
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
PDF
Lessons Learned from 2000 Event Driven Microservices - Reversim
Natan Silnitsky
 
PDF
Devoxx Ukraine - Kafka based Global Data Mesh
Natan Silnitsky
 
PDF
Devoxx UK - Migrating to Multi Cluster Managed Kafka
Natan Silnitsky
 
PDF
Dev Days Europe - Kafka based Global Data Mesh at Wix
Natan Silnitsky
 
PDF
Kafka Summit London - Kafka based Global Data Mesh at Wix
Natan Silnitsky
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
Integration Ignited Redefining Event-Driven Architecture at Wix - EventCentric
Natan Silnitsky
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
Async Excellence Unlocking Scalability with Kafka - Devoxx Greece
Natan Silnitsky
 
Wix Single-Runtime - Conquering the multi-service challenge
Natan Silnitsky
 
WeAreDevs - Supercharge Your Developer Journey with Tiny Atomic Habits
Natan Silnitsky
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Natan Silnitsky
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Natan Silnitsky
 
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Natan Silnitsky
 
DevSum - Lessons Learned from 2000 microservices
Natan Silnitsky
 
GeeCon - Lessons Learned from 2000 microservices
Natan Silnitsky
 
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Natan Silnitsky
 
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
Lessons Learned from 2000 Event Driven Microservices - Reversim
Natan Silnitsky
 
Devoxx Ukraine - Kafka based Global Data Mesh
Natan Silnitsky
 
Devoxx UK - Migrating to Multi Cluster Managed Kafka
Natan Silnitsky
 
Dev Days Europe - Kafka based Global Data Mesh at Wix
Natan Silnitsky
 
Kafka Summit London - Kafka based Global Data Mesh at Wix
Natan Silnitsky
 
Ad

Recently uploaded (20)

PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Digital Circuits, important subject in CS
contactparinay1
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 

8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the Bay