Skip to main content

arrakis-server

Arrakis server

ci ci documentation pypi version


Server implementation of the Arrakis low-latency timeseries data distribution platform. Serve historical and live detector data to clients over Apache Arrow Flight, either from a backend you provide or by acting as an information server that routes requests to other Arrakis endpoints.

Resources

Installation

With pip:

pip install arrakis-server

With Docker:

docker run --net=host -it containers.ligo.org/ngdd/arrakis-server:latest

Where to Start

  • Tutorial — New to arrakis-server? Run a mock server and connect a client step by step.
  • User Guide — Running the server, configuring backends, scope maps, multi-backend deployments, and production tips.
  • Background — How the server works: Flight dispatch, the backend trait, retention-based routing, and the metadata model.
  • API Reference — Auto-generated documentation from source code.

Features

  • Pluggable backends via Python entry points
  • Built-in mock backend for local testing and CI
  • Information-server mode that routes requests across multiple endpoints
  • Retention-aware request routing, splitting time ranges across live and historical backends
  • Time-valued channel metadata for evolving detector configurations
  • Publish and partition endpoints for Kafka-backed publishing backends

Quickstart

Run a mock server

The mock backend generates synthetic timeseries for a predefined set of H1 and L1 channels:

arrakis-server mock

Then connect with the Arrakis client CLI:

arrakis find "H1:.*"

Serve custom mock channels

Pass one or more TOML files defining your own channels:

arrakis-server mock my_channels.toml

A minimal channel file:

["common"]
publisher = "MY_PUBLISHER"
sample_rate = 256
data_type = "float32"
stride = 62_500_000
max_latency = 1_000_000_000

["MY:CHANNEL-NAME"]
func = "3*t + cos(t)"

func accepts any SymPy expression in t (GPS seconds) to generate deterministic waveforms.

Run as an information server

An information server holds no data of its own; it routes client requests to other Arrakis endpoints based on a scope map:

arrakis-server --scope-map scope.yaml

The scope map lists each downstream endpoint along with the scopes and retention windows it serves. See the Scope Maps guide for the file format, and Multi-Backend Deployments for composing live and historical backends.

Write a backend

Backends plug in via the arrakis-server-backend entry-point group. A minimal backend implements the ServerBackend protocol and registers in its package's pyproject.toml:

[project.entry-points.arrakis-server-backend]
mybackend = "my_package.backend:MyBackend"

See Writing a Backend for the full interface and a complete example.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arrakis_server-0.16.2.tar.gz (134.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arrakis_server-0.16.2-py3-none-any.whl (119.5 kB view details)

Uploaded Python 3

File details

Details for the file arrakis_server-0.16.2.tar.gz.

File metadata

  • Download URL: arrakis_server-0.16.2.tar.gz
  • Upload date:
  • Size: 134.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1

File hashes

Hashes for arrakis_server-0.16.2.tar.gz
Algorithm Hash digest
SHA256 29a18eaa5c0ada5fb8ea1df353f4ad5118a7ff52707d5fea3c8ce8e937ade211
MD5 da269b971b4e5676c555de3bf4cf21b2
BLAKE2b-256 52292357f5a23d8513058bb8271188ddea796d28f01112895115e69f6d7cb55e

See more details on using hashes here.

File details

Details for the file arrakis_server-0.16.2-py3-none-any.whl.

File metadata

  • Download URL: arrakis_server-0.16.2-py3-none-any.whl
  • Upload date:
  • Size: 119.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1

File hashes

Hashes for arrakis_server-0.16.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3ceb37fa6d050a22850fd1e4337cd4dc9f4cb0e96d97ffd2449d15ac4c62ab30
MD5 0faa081cc41413f50061dcb16229d521
BLAKE2b-256 7c32fd774d0b5471b0820d089c69a7924f1e5e428b85b270fda130ee81f9d970

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.16.2 This release

2 files

0.16.1

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page