Natan Silnitsky is a backend-infra engineer @Wix.com. He is on 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.
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 4 Caching Patterns that are used by Wix's 1500 microservices in order to provide the best experience for Wix users along with saving costs and increasing availability.
A cache will reduce latency, by avoiding the need of a costly query to a DB, a HTTP request to a Wix servicer, or a 3rd-party service. It will reduce the needed scale to service these costly requests.
It will also improve reliability, by making sure some data can be returned even if aforementioned DB or 3rd-party service are currently unavailable.
The patterns include:
Each pattern is optimal for other use cases, but all allow to reduce costs and gain performance and resilience.