Skip to content

synnaxlabs/synnax

Repository files navigation




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 mostly 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.

How to Contribute

Help us modernize industrial control! Reach out to Emiliano(ebonilla@synnaxlabs.com) if you'd like to get involved. While you wait for a response, check out the New Contributor Guide to get up to speed.

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.