The telemetry engine for operating large scale hardware systems with ease.
Synnax is a distributed telemetry engine designed to acquire and store data from, issue commands to, and process telemetry generated by hardware systems. It scales horizontally, and can be deployed on edge devices (data acquisiton) in highly dynamic environments with intermittent network connectivity, or in cloud environments (data processing) for high performance analyis.
Synnax is currently in alpha (v0.1.0) and is under active development. The API is unstable and may change at any time. Synnax follows semantic versioning guidelines.
We welcome contributions. Reach out to Emiliano (emilbon99@gmail.com) if you'd like to get involved. While you wait for a response, check out the New Developer Guide to get up to speed. Also, feel free to browser through the technical RFCs to get a sense of where we've been and where we're going.
Synnax is built as a collection of several projects, all of which are collected in this monorepo. The following is a list of the services and their purpose:
- Aspen - A gossip based distributed key-value store used for propagating and persisting metadata between nodes, such cluster topology, state, and configuration. The core RFC for Aspen is available here.
- Cesium - An embedded time-series engine optimized for high performance reads and writes of regular telemetry. The core RFC for Cesium is available here.
- Client - Client libraries for synnax available in multiple languages. The implementation for each language is a subpackage of the client package.
- Documentation - The technical and user-facing documentation for Synnax. Contains the code for the Synnax documentation website, technical RFCs, and additonal media such as logos.
- Freighter - A protocol agnostic network transport for cross-language unary and streaming communication. Freighter has implementations in several languages; each implementation is contained in a sub-directory of the freighter service. The core RFC for Freighter is available here.
- Pluto - A React component library for building the Synnax user interfaces. This package includes theming standards (primary colors, grays, errors, fonts, etc.).
- Synnax - The core Synnax server, which integrates all other services to provide a complete telemetry system.
- X - The common utilities
used across all Synnax services. To list a few interesting examples:
- Alamos - Dependency injected code instrumentation.
- Confluence - Assemble and run concurrent data processing and message passing pipelines.
- Gorp - Efficient querying of go-types to and from a key-value store.
- Signal - A library for controlling the lifecycle of communicating sequential processes.