synnax

The data and operations foundation for hardware.

OTHER License

Downloads
11.5K
Stars
20
Committers
19

Synnax

The software infrastructure for data driven hardware teams.

What is Synnax?

Synnax is for real-time hardware operations teams dissatisfied with the long, inefficient cycles between acquiring data and using it to make actionable decisions. Unlike traditional systems that disregard data handling beyond writing to a file, Synnax considers the entire data lifecycle; its modular, open architecture delivers locality aware distributed data storage and transport, extensible interfaces for integrating analysis tools, and a performant pipeline for manual and programmatic control at any scale.

Development Status

Synnax is currently in beta and is under active development. The APIs are stable and are unlikely to change significantly.

Versions prior to 1.x.x follow modified Semantic Versioning. Versions with the same patch (e.g. 0.0.1 and 0.0.2) are guaranteed to maintain the same API, while minor versions may include API changes.

Our team is targeting a v1 release before the end of 2024, at which point all APIs will be stable and follow strict semantic versioning.

Repository Organization

Synnax is built as a collection of several projects, all of which are collected in this monorepo. The following is an alphabetically sorted summary of each:

  • Alamos - Dependency injected code instrumentation that provides
    observability into the Synnax platform.
  • Aspen - A gossip based distributed key-value store used for propagating and
    persisting metadata between nodes, such cluster topology, state, and configuration.
  • Cesium - An embedded time-series engine optimized for high performance reads
    and writes of time-series sensor data.
  • Client - Client libraries for synnax available in multiple languages.
  • Console - Data visualization and cluster management user interface for Windows,
    macOS, and Linux.
  • Documentation Site - The user-facing documentation for Synnax. Contains
    the code for the Synnax documentation website, technical RFCs, and additional media
    such as logos.
  • Freighter - A protocol agnostic network transport for cross-language
    unary and streaming communication with implementations in several languages.
  • Pluto - A component library for building modular user interfaces on top of
    the Synnax telemetry engine.
  • Synnax - The core Synnax server, which integrates all other services to
    provide a complete telemetry system.
  • X - Common utilities used by other projects. The most relevant are:
    • Telem - Core telemetry primitives used across the Synnax stack
      (timestamps, data types, arrays, etc.)
    • 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 goroutine lifecycle.