Tuesday, September 14, 2021

Advanced Caching Patterns Used by 2000 Microservices
Join on Hopin
Natan Silnitsky
Natan Silnitsky
Wix.com, Backend Infra Developer

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:
* Configuration Data Cache - persisted locally or to S3
* HTTP Reverse Proxy Caching - using Varnish Cache
* Kafka topic based 0-latency Cache - utilizing compact logs
* (Dynamo)DB+CDC based Cache and more - 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.