at.adsb.sync.subscribeEvents
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"broadcastOp": {
"description": "A single operation within a relayed event. This definition MUST track at.adsb.broadcast.subscribeEvents#broadcastOp — if the upstream broadcast lexicon changes this shape, update this definition to match.",
"properties": {
"action": {
"description": "The type of operation.",
"knownValues": [
"create",
"update",
"delete"
],
"maxLength": 16,
"type": "string"
},
"record": {
"description": "The record payload. Shape determined by the record's $type field.",
"type": "unknown"
}
},
"required": [
"action",
"record"
],
"type": "object"
},
"event": {
"description": "A relayed batch of operations from a single station's poll cycle.",
"properties": {
"ops": {
"description": "List of operations in this batch, passed through from upstream.",
"items": {
"ref": "#broadcastOp",
"type": "ref"
},
"type": "array"
},
"seq": {
"description": "The relay-minted monotonic sequence number of this message.",
"type": "integer"
},
"sig": {
"description": "Pass-through signature from the upstream station. This signature was computed by the station over the DAG-CBOR encoding of the upstream event body {$type: 'at.adsb.broadcast.subscribeEvents#event', seq, station, time, ops} (where seq is the station's original sequence, present here as upstreamSeq). To verify, reconstruct the upstream body by mapping upstreamSeq back to seq and including $type: 'at.adsb.broadcast.subscribeEvents#event' (dropping src), then check the signature against the station's published streamSigningKey. The signature does NOT verify against this sync frame body.",
"type": "bytes"
},
"src": {
"description": "The DID of the originating station.",
"format": "did",
"type": "string"
},
"station": {
"description": "Strong reference to the emitting station's at.adsb.receiver.station record.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"time": {
"description": "Timestamp from the upstream station's poll cycle.",
"format": "datetime",
"type": "string"
},
"upstreamSeq": {
"description": "The station's original sequence number from the upstream broadcast stream. Note: station seq resets on process restart; consumers should detect regression.",
"type": "integer"
}
},
"required": [
"seq",
"src",
"upstreamSeq",
"station",
"time",
"ops"
],
"type": "object"
},
"info": {
"description": "Control frame generated by the relay (e.g., OutdatedCursor). Upstream #info frames are not relayed.",
"properties": {
"message": {
"description": "Human-readable info message.",
"maxLength": 1024,
"type": "string"
},
"name": {
"description": "Operational info message name.",
"knownValues": [
"OutdatedCursor"
],
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"main": {
"description": "Subscribe to relayed events from all stations tracked by this relay.",
"errors": [
{
"description": "The requested cursor is in the future (beyond the relay's current head sequence).",
"name": "FutureCursor"
},
{
"description": "The consumer's read rate is too far behind the relay's write rate. The connection has been dropped.",
"name": "ConsumerTooSlow"
}
],
"message": {
"schema": {
"refs": [
"#event",
"#station",
"#info"
],
"type": "union"
}
},
"parameters": {
"properties": {
"cursor": {
"description": "The last sequence number previously received. If provided, the stream will backfill from that point.",
"type": "integer"
}
},
"type": "params"
},
"type": "subscription"
},
"station": {
"description": "A station registry change observed by the relay via the AT Protocol firehose.",
"properties": {
"op": {
"description": "The type of registry change.",
"knownValues": [
"create",
"update",
"delete"
],
"maxLength": 16,
"type": "string"
},
"record": {
"description": "The full station record. Present for create and update ops; absent for delete ops. When present, shape matches at.adsb.receiver.station record definition.",
"type": "unknown"
},
"seq": {
"description": "The relay-minted monotonic sequence number of this message.",
"type": "integer"
},
"src": {
"description": "The DID of the station whose record changed.",
"format": "did",
"type": "string"
},
"time": {
"description": "Timestamp of when the relay observed the firehose event.",
"format": "datetime",
"type": "string"
}
},
"required": [
"seq",
"src",
"op",
"time"
],
"type": "object"
}
},
"description": "Unified relay output stream aggregating aircraft telemetry from multiple at-adsb receiver stations. Re-sequences all station telemetry under a single monotonic cursor with backfill support.",
"id": "at.adsb.sync.subscribeEvents",
"lexicon": 1
}
Metadata
- DID
-
did:plc:32thk4eifx4ou6mxevswgjhg - CID
-
bafyreiarcfze7ph2yomj5gr4xnouozfrjell2b2f73odoviuobnc3tbfcq - Indexed At
- 2026-08-02 19:25 UTC
- AT-URI
-
at://did:plc:32thk4eifx4ou6mxevswgjhg/com.atproto.lexicon.schema/at.adsb.sync.subscribeEvents
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.adsb.broadcast.subscribeEvents subscription
Ephemeral event stream from a receiver station. Emits batched aircraft operations per poll cycle. Does not write to any repository.