top of page
Workflow Engines & Event Streaming Brokers - Can They Work Together?
Workflow engines and event streaming brokers offer very different solutions to the same requirement - an optimal implementation of microservices communication. At Wix, we have a good experience with event-driven architecture for our 2500 microservices using Apache Kafka. Apache Kafka provides: - Support for very high throughput - Fault tolerance - Very loose coupling - Huge connectors eco-system Temporal workflow orchestration has interesting features: - Support for long running tasks - Business flows visual tracking - Easy to follow imperative style programming In this talk we will learn about the tradeoffs between the two technologies and how to implement various use cases in each architecture, including those that need a little more work. ABOUT CONFLUENT Confluent is pioneering a fundamentally new category of data infrastructure focused on data in motion. Confluent’s cloud-native offering is the foundational platform for data in motion – designed to be the intelligent connective tissue enabling real-time data, from multiple sources, to constantly stream across the organization. With Confluent, organizations can meet the new business imperative of delivering rich, digital front-end customer experiences and transitioning to sophisticated, real-time, software-driven backend operations. To learn more, please visit www.confluent.io. #confluent #apachekafka #kafka
Natan Silnitsky - Create Atomic Habits to Become a Better Developer #buildstuffconf
An atomic habit is a regular practice or routine that is not only small and easy to do but is also the source of incredible power. In this talk we will learn how to become better developers by changing our habits in a way that will compound into remarkable results. We will see how to implement the Four Laws of Behavior Change (make it obvious, make it attractive, make it easy, make it satisfying) for the following habits: * getting into coding flow and avoiding distractions * learning new tech skills * prioritizing coding tasks. You can join us at the next conference! Get your ticket today! 🎟️https://bit.ly/3JJwWIK
Natan Silnitsky - Lessons Learned From Working with 2000 Event-Driven Microservices #buildstuffconf
During this session developers and architects will get many concrete takeaways about how to improve their event-driven design with proven battle-tested methods or convince them to switch from request-reply architecture. Wix has a huge scale of event driven traffic. More than 70 billion Kafka business events per day. Over the past few years Wix has made a gradual transition to an event-driven architecture for its 2000 microservices. We have made mistakes a long the way but have improved and learned a lot about how to make sure our production is still maintainable, performant and resilient. In this talk you will hear about the lessons we learned including: 1. The importance of atomic operations for databases and events 2. Avoiding full-blown event sourcing, instead taking CRUD to the next level 3. Having essential events debugging and quick-fix tools in production and a few more You can join us at the next conference! Get your ticket today! 🎟️https://bit.ly/3JJwWIK
Migrating 2000 microservices to Multi Cluster Managed Kafka with 0 Downtime by Natan Silnitsky
For more info on the next Devoxx UK event 👉 www.devoxx.co.uk How do you migrate your Kafka cluster while still allowing full user traffic? Recently, Wix migrated its self-hosted, 60B events per day Kafka clusters, to a managed Kafka platform. The classic approach would be to perform this transition when all incoming traffic is removed from the data center. But draining an entire data-center for an undetermined period of time, until all 2000 services complete the switch was too risky for us. This talk is about how we gradually migrated all of our Kafka consumers and producers with 0 downtime while they continued to handle regular traffic. You will learn practical steps you can take to greatly reduce the risks and speed up the migration timeline.
Natan Silnitsky - Five takeaways from migrating a library to Scala 3
Scala 3 is going to make Scala easier to write, and especially read. More power features like enums and less misleading keywords like implicit. But first, we need to migrate our old Scala 2.12 / 2.13 codebase to Scala 3. This talk tells the story of how I tried to migrate the Greyhound Kafka SDK open-source library to Scala 3 with partial success. You will hear about what works, what doesn't, and about a few pitfalls to avoid. Migration takeaways include: 1. Use migration tools, don't do it manually. 2. Which popular 3rd party libraries can and can't be used by Scala 3 code and many more. https://2022.scala.love https://twitter.com/scala_love
How To Successfully Manage A ZIO Fiber's Lifecycle by Natan Silnitsky
Fibers are the backbone of the highly performant, asynchronous, and concurrent abilities of ZIO. They are lightweight “green threads”, implemented by the ZIO runtime system. In this talk you will learn about: * How to handle fibers dying due to unexpected failures * How to guarantee a ZIO fiber is interrupted * How to set up fiber tracking and execute a fiberDump for increased debuggability. #functionalscala #FunScala2021 #Scala #zio #Ziverge #zymposium #functionalprogramming #scaladeveloper #zioscala
Open Sourcing a Successful Internal Project / Natan Silnitsky
About a year ago data streams team at Wix has released to open-source its Kafka client SDK wrapper called Greyhound. Greyhound offers rich functionality like message processing parallelisation and batching, various fault tolerant retry policies and much more. This talk will show how the team designed Greyhound with a layered architecture to allow both public and private parts and also different levels of flexible configuration. How it automatically syncs only relevant code from private repo to public one and also how it securely accepts public PRs back to the private repo. From https://summit2021.reversim.com/
DevoxxUA 2021. Natan Silnitsky. Advanced Caching Patterns used by 2000 microservices
The talk from Devoxx Ukraine 2021 ONLINE Fb: www.facebook.com/DevoxxUkraine/ Website: www.devoxx.com.ua Architecture Wix has a huge scale of traffic. more than 500 billion HTTP requests and more than 1.5 billion Kafka business events per day. This talk goes through 3 Caching Patterns that are used by Wix's 2000 microservices in order to provide the best experience for its users along with saving costs, reducing latency and increasing availability. The patterns include: * Configuration Data Cache - persisted locally or to S3 * HTTP Reverse Proxy Caching - using Varnish Cache * (Dynamo)DB+CDC based Cache - for unlimited capacity with continuously updating LRU cache on top each pattern is optimal for other use cases, but all allow to reduce costs and gain performance and resilience.
Wix Engineering Tech Talks
Kafka Based Global Data Mesh At Wix- Natan Silnitsky
As your organization rapidly grows in scale, so does the number of challenges you face. The growing scale comes in multiple dimensions - traffic, geographic presence, products portfolio, various technologies, number of developers, etc. Coming up with an architecture that can handle all of the data flows in a universal, simple way is key. This talk is about Wix's Kafka-based global data architecture and platform. How we made it very easy for 2,000 Wix microservices to publish and subscribe to data, no matter where they are deployed in the world, or what technology stack they use. All the while offering various tools and features to help adapt to the growing scale and insuring high resilience. // bio Natan Silnitsky is a backend-infra team lead @Wix.com. He leads the Data streaming team in charge of building event-driven libraries and tools on top of Kafka and ZIO. Before that, he was part of a task force that was responsible for building the next-generation CI system at Wix on top of Google's Bazel build tool. Has many years of experience as a developer of large-scale web services - First in .Net, later in Scala. Natan's passions include clean and functional code, dev velocity, and great software design.
bottom of page