This talk is about the Wix ecosystem for event driven architecture on top of Kafka.
I share the best practices, SDKs and tools we have created in order to be able to scale our distributed system to more than 1000 microservices.
Injustice - Developers Among Us (SciFiDevCon 2024)
How to build 1000 microservices with Kafka and thrive
1. natans@wix.com twitter @NSilnitsky linkedin/natansilnitsky github.com/natansil
How to build 1000 microservices
with Kafka and thrive
Natan Silnitsky
Backend Infra Developer, Wix.com
7. A lot of
boilerplate
and missing
features
Kafka SDK
2015
synchronous
rpc-json + retries
*special cases:
activeMQ
till 2014
many
production
operations
issues
8. Greyhound Make it simple
and abstract
Kafka SDK
2015
synchronous
rpc-json + retries
*special cases:
activeMQ
till 2014
many
production
operations
issues
A lot of
boilerplate
and missing
features
9. Greyhound
Kafka SDK
2015
synchronous
rpc-json + retries
*special cases:
activeMQ
till 2014
many
production
operations
issues
A lot of
boilerplate
and missing
features
2018
Async request-reply
* polyglot
29. The Kafka consumer is NOT thread-safe.
All network I/O happens in the thread of the application making the call.
It is the responsibility of the user to ensure that multi-threaded access is
properly synchronized.
Un-synchronized access will result in ConcurrentModificationException.
https://kafka.apache.org/20/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html
30. The Kafka consumer is NOT thread-safe.
All network I/O happens in the thread of the application making the call.
It is the responsibility of the user to ensure that multi-threaded access is
properly synchronized.
Un-synchronized access will result in ConcurrentModificationException.
https://kafka.apache.org/20/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html
31. Greyhound wraps Kafka
So
instead of
a lot of
consumers...
- Setup boilerplate
- Consumer API boilerplate
+ Parallel
Consumption!