Some applications have data sets with extremely low latency tolerance. For Netflix, this applies to metadata about our movies and TV shows. We store this data directly in RAM on the servers responsible for powering the Netflix experience.
Netflix leans heavily on Zeno to manage, transport, and keep updated these gigabytes of constantly-changing data replicated across thousands of servers. Zeno:
- Creates compact serialized representations of a set of Java Objects.
- Automatically detects and removes duplication in a data set.
- Automatically produces a minimal set of changes required to keep data up-to-date.
- Is efficient about resource impact when deserializing data.
- Provides powerful tools to debug data sets.
- Defines a pattern for separation between data model and data operations, increasing the agility of development teams.
Artifacts
The Zeno binaries are published to Maven Central.
<dependency>
<groupId>com.netflix.zeno</groupId>
<artifactId>netflix-zeno</artifactId>
<version>2.5</version>
</dependency>
Documentation
Detailed documentation of Zeno's features and usage can be found on the wiki.
Javadocs are available here.
Build
Zeno is built via Gradle (www.gradle.org). To build from the command line:./gradlew build
Support
Support can be obtained through the Zeno google group
Authors and Contributors
Original concept and development:
- Drew Koszewnik (@dkoszewnik)
- Michael Clark
- Deva Jayaraman
- Lavanya Kanchanapalli
- Apurva Kansara
- Rohit Kaul
- Drew Koszewnik
- Puneet Lakhaina
- Brian Moore
- Vu Tuan Nguyen
- Timur Valiulin
- David Su
- Jatin Shah