Skip to main content

Schemas for the Arrakis API

Project description

Arrakis Schema Specification

This repository defines the schema for all data, metadata and API requests for the arrakis LIGO data distribution system.

Schemas are defined in one of two places:

  • endpoints/: Endpoints served from Arrakis server
  • publication/: Data published into Kafka

Endpoints

The Arrakis server responds to API requests corresponding to the four main actions exposed by the client API:

as well as two actions which aid in publication:

All API requests are done in a two-stage approach by first sending an Arrow Flight descriptor to the server, returning back a Flight info object which contains the request and the server to contact, contained within a Flight ticket. This ticket is then sent to receive back the expected payload with a specific Arrow flight schema dependent on the request, serialized in the Arrow streaming format.

The Flight descriptors sent to the server in the first stage are all specified here as JSON packets which are UTF-8-encoded, using the command variant of the Flight descriptor, which can be used to specify any application-specific command.

The Flight descriptor schemas are described within each endpoint in descriptor.json, while the payload schemas are described via schema.txt. In addition, a generic descriptor specification for all endpoints is described in endpoints/descriptor.json.

Publication

Publication is done by first registering a publisher via the publish endpoint with a publisher ID. If authorized to do so, the server will send a response with connection details to connect via Kafka to publish data.

The data is published via Kafka with the schema described in publication/schema.txt.

Usage

Python

The generic Flight descriptor schema is described within each endpoint in {endpoint}.json. In addition, a generic descriptor specification for all endpoints is described in descriptor.json.

from arrakis_schema import load_schema

schema = load_schema("count.json")

Project details


Download files

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

Source Distribution

arrakis_schema-0.4.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

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

arrakis_schema-0.4.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file arrakis_schema-0.4.0.tar.gz.

File metadata

  • Download URL: arrakis_schema-0.4.0.tar.gz
  • Upload date:
  • Size: 8.4 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_schema-0.4.0.tar.gz
Algorithm Hash digest
SHA256 5691834bbd3fa04745601cd248eb367f0a1c042074631d31dffcda66b7a71544
MD5 f7ba2f450118fbde1e63e73f2b141355
BLAKE2b-256 15d905e476977b58aff01b0d5301be0d839f2f3b09837930ef8906ab171c2a26

See more details on using hashes here.

File details

Details for the file arrakis_schema-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: arrakis_schema-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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_schema-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec76a484fe2e5be74b10e4ee5f061ccc4cea5b09596c6821af9c35300b98184
MD5 25d135ae1dd5d5f5d75ad6811e4e58e6
BLAKE2b-256 34339dc854ab5dd46d6714c83c7f74e09f8aed402a3e034056cd2d7001cf24b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page