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 the Zeno framework 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.
Zeno is highly optimized. See The Netflix Tech Blog for a description of how Netflix has benefited from the development and application of the Zeno framework.
Zeno binaries are published to Maven Central.
GroupID/Org | ArtifactID/Name | Latest Version |
---|---|---|
com.netflix.zeno | netflix-zeno | 2.5 |
In a Maven .pom file:
...
<dependency>
<groupId>com.netflix.zeno</groupId>
<artifactId>netflix-zeno</artifactId>
<version>2.5</version>
</dependency>
...
Documentation is available on the wiki.
Zeno is built via Gradle (www.gradle.org). To build from the command line:
./gradlew build
Zeno is actively used and maintained by the Metadata Infrastructure team at Netflix. Issues will be addressed in a timely manner. Support can be obtained through the Zeno google group