← Traddea · Jannah Capital Traddea Pipeline · Phase 10 — CoinGlass Forward-ETL

The signal tape, refined through three metals.

A registry-driven collector pulls 57 CoinGlass + alt-data signals (54 live, 3 staged-off) plus the Binance trade firehose, lands every payload as immutable raw, distils it into a narrow hot RDS tier, and compacts it into an immutable point-in-time research lake. One global rate-limiter governs every REST call; the WebSocket tape runs off-budget. This is the data flow, end to end.

Signals57 specs · 54 enabled CadencesWS · 1m · 5m · 15m · daily REST budget176/min soft · 220 hard LayersBronze → Silver → Gold Status● Production
The signal tape — full pipeline architecture Bronze → Silver → Gold · 57 signals · AWS ap-northeast-1
01

The medallion spine

raw S3 → hot RDS → compacted parquet lake
CoinGlass WS futures_trades · liquidation_orders — off-budget firehose
CoinGlass REST 53 endpoints · 1 global limiter (220/min)
Binance WS bookTicker · separate process · /market routing
Br

Bronze

Raw · durable · immutable

Capture spools every WS/REST payload through the off-loop accept-WAL to the S3 raw/ prefix, indexed in cg_raw_payload_index. Durable-before-ACK: the raw object is the system of record. RAW_ONLY & RECONCILE signals terminate here.

S3 raw/collection_epoch=N/…gzip JSON
cg_raw_payload_indexsha256 ledgerRDS
cg_cvd_bars*WS-derived CVD→ silver
transform
Ag

Silver

Parsed · normalized · hot tier

The transform producer reads newly-durable raw, normalizes it, builds deterministic replayable bars, and commits manifest + rows + watermark in one transaction to narrow cg_* RDS tables (append-only, idempotent). as-of views serve point-in-time reads.

cg_oi_ohlc · cg_funding_ohlcseries
cg_basis · cg_positioning · cg_indicesseries
*_snap · cg_r2_events · cg_r2_indicessnap/event
cg_symbol_mapdimensionupsert
compact
Au

Gold

Compacted · PIT · research lake

Off the hot path, the compactor reads RDS as-of views and writes immutable monthly parquet + manifests to compacted/gold/{dataset}/ — and may write only that prefix (research-compute isolation, fail-closed). This lake feeds validation & training.

compacted/gold/….parquetimmutable
manifestbar_row_hashbit-identical
collection_epochforward T0stamped
02

The signal catalog

every collector is a registry EndpointSpec — no bespoke scheduler branches
Cadence
Medallion target
Budget lane
03

One limiter, four lanes

a global atomic token ledger — the core never yields to research

WS stream

off-budget

The trade / liquidation firehose. Owned by the WS client, never charged to the REST ledger. Durable via accept-WAL before ACK.

BudgetClass Acontinuous

Core

176 / 220

Every budget-critical REST series + breadth + index + control call. Sized for N=80 at the soft target; 220 is the hard ceiling.

Classes B · C176 soft

Sidecar

8 lanes

R1 microstructure + R2 event feeds. Non-blocking breaker — the core never waits on them; their DQ gaps are WARNING, not CRITICAL.

BudgetClass DR1 last to shed

Probe

4 lanes

The cheapest research substrate — R2 daily on-chain indices. The breaker defers these first under pressure.

BudgetClass Ddeferred first
04

Production guarantees

durability · isolation · point-in-time integrity

Durable before ACK

accept-WAL

Every WS/REST payload is committed to the off-loop write-ahead log before the frame is acknowledged. Crash-safe: the raw object is the system of record, recovered bit-for-bit on restart.

Liveness off the loop

FANOUT-05

The lease heartbeat, spool, and S3 upload run off the asyncio loop, so the full-tape firehose can never starve liveness. An autonomous watcher load-sheds and self-recovers under pressure.

Research isolation

compacted/ only

The gold compactor may write only the compacted/ prefix — fail-closed. Raw ingestion and research compute can never collide; the lake is immutable, monthly, manifest-verified.

Point-in-time correctness

as-of views

Deterministic, replayable bars hash bit-identical from the same raw window. As-of views serve only data that was knowable at each timestamp — no look-ahead leaks into validation or training.

05

Deployed on AWS

ap-northeast-1 · Tokyo · single-region · Terraform IaC
◆ AWS Cloud · ap-northeast-1 · Tokyo
CoinGlass API REST + WebSocket
Binance WS firehose · /market
GitHub Actions OIDC · CI/CD
↓  Internet Gateway  ·  Elastic IP — static allowlisted egress (Binance / CoinGlass IP allowlist)  ↓
VPC · app subnet + db subnet · security groups
Compute · EC22 instances
Collectorm6i.large
capture transform compaction ·timer dq hourly+daily binance-capture
◆ accept-WAL on local NVMe — durable-before-ACK spool, off the asyncio loop
Pipelinetrain · validate
model train · step 6 LdP validation · step 7
Data plane · hot + lakeRDS · S3 ×2
AMAZON RDS · POSTGRESQL
Hot tier — silver
Narrow cg_* series + as-of views · db.t3.medium · private subnet
AMAZON S3
Raw bucket — bronze
traddea-coinglass-raw · immutable gzip JSON · collection_epoch=N/
AMAZON S3 · VERSIONED
Artifacts — gold lake
compacted/gold/*.parquet + models + manifests · lifecycle-tiered
Platform · security · observability
AMAZON ECR
Image registry
collector image + lifecycle policy
SSM PARAMETER STORE
Secrets
DSN · API keys · injected at boot
CLOUDWATCH · SNS · LAMBDA
Observability
16 alarms → composite → SNS notify
EVENTBRIDGE SCHEDULER
Cron control plane
scheduled compaction / DQ jobs
IAM · OIDC
Least-privilege roles
2 instance profiles · keyless CI
1Ingress. CoinGlass WS + REST and the Binance firehose enter via the Internet Gateway; all egress is pinned to the Elastic IP for exchange allowlists.
2Capture → Bronze. The collector commits every payload to the accept-WAL (local NVMe), uploads to the S3 raw bucket, and indexes it in RDS.
3Transform → Silver. The transform unit reads durable raw and writes narrow cg_* tables to RDS — the hot, point-in-time tier.
4Compact → Gold. The compaction timer reads RDS as-of views and writes immutable parquet to the S3 artifacts bucket (compacted/ only).
5Train & validate. The pipeline instance reads the gold lake + RDS, runs the model + López de Prado validation, and writes artifacts back to S3.
6Config & secrets. Both instances assume least-privilege IAM roles and pull secrets from SSM and images from ECR at boot — no static keys.
7Observe. Logs + metrics stream to CloudWatch; 16 alarms roll into a composite alarm that fans out via SNS → Lambda.
8Ship. GitHub Actions authenticates keyless via OIDC, builds the image, and pushes to ECR — the collector pulls it on redeploy.
Traddea · CoinGlass Forward-ETL Bronze → Silver → Gold medallion 57 EndpointSpecs · registry-driven AWS · ap-northeast-1 · Terraform IaC Source of truth: signals_registry.py Generated 2026-06-27