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.

Release files for arrakis-server 0.17.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arrakis-server 0.17.1
File Size Uploaded
arrakis_server-0.17.1.tar.gz 163.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arrakis-server 0.17.1
File Interpreter ABI Platform
arrakis_server-0.17.1-py3-none-any.whl Python 3 none any Details

Total release size: 300.0 kB

Release files / arrakis_server-0.17.1.tar.gz

Download URL arrakis_server-0.17.1.tar.gz
Size 163.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1f4942e7744c5e2cde21b3d31147fb4a755639235573524d55bfd49a18f2b602
BLAKE2b-256 checksum
How to use checksums
9c8d2b914ab72d48c3be0762d0f5f6f4efc2194dfc9e6bf9689015cbb1f52a51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1

Release files / arrakis_server-0.17.1-py3-none-any.whl

Download URL arrakis_server-0.17.1-py3-none-any.whl
Size 136.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc424af6f73a4f0f7021f71f49d9274c7fc06e8220476500d6abd45a1f224de4
BLAKE2b-256 checksum
How to use checksums
d348dabed6895e7d5abab17cab5a1ffc6be6f5aaef9a1814e2ae838aab4b0062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1

Release history Release notifications | RSS feed

0.17.2

2 release files

This release

0.17.1 This release

2 release files

0.17.0

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release 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