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 serverpublication/: Data published into Kafka
Endpoints
The Arrakis server responds to API requests corresponding to the four main actions exposed by the client API:
- stream: endpoints/stream
- describe: endpoints/describe
- find: endpoints/find
- count: endpoints/count
as well as two actions which aid in publication:
- partition: endpoints/partition
- publish: endpoints/publish
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
.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arrakis_schema-0.1.2.tar.gz.
File metadata
- Download URL: arrakis_schema-0.1.2.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec94b8b56ad100d62b8a083f2bfe0834ce345d0717df814eb2e13782b9a91abe
|
|
| MD5 |
c2a8fa52a067ad8a8380c640ab43b558
|
|
| BLAKE2b-256 |
470755673f9212f9d1cb3cd87656c58b3ef674952e814ee8f558c46bbe404b9f
|
File details
Details for the file arrakis_schema-0.1.2-py3-none-any.whl.
File metadata
- Download URL: arrakis_schema-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d08f2efdc78607b6d28fcdafec301e1f086662de1e2fc3e9ce59f7262d2f582
|
|
| MD5 |
717085a9c9540aa4ace18da98b18efb3
|
|
| BLAKE2b-256 |
fab05d6bcdb0c483ac4fb49b4e2d8bb743e9166a1ba924b42ca60314d128d905
|