30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
# EdgeMarketSignal: Edge-Native Market Data Plane
|
|
|
|
This repository provides a compact, production-oriented starting point for an edge-native market data plane that extracts privacy-preserving signals from venue feeds, enables delta-sync for offline modes, and offers a clean pathway to central risk/strategy engines.
|
|
|
|
- Edge-first signal extraction: lightweight per-venue summaries (top-of-book changes, mid-price, last-trade prices, liquidity metrics).
|
|
- Local summarization and aggregation: per-venue metrics with compact representations.
|
|
- Privacy-preserving sharing: secure aggregation and optional privacy budgets.
|
|
- Delta-sync: deterministic reconciliation on reconnects with auditability.
|
|
- Transport-agnostic adapters: pluggable interfaces for FIX/WebSocket/MQTT (future work).
|
|
- Security: basic governance metadata scaffolding (AuditLog placeholders).
|
|
- MVP roadmap: end-to-end toy demonstration with 2 venues, 2 central analyzers.
|
|
|
|
## EnergiBridge Interop (IR)
|
|
- This repo now includes a lightweight EnergiBridge-compatible intermediate representation (IR) to map edge primitives to a common cross-venue interface.
|
|
- Key primitives:
|
|
- LocalMarketContext: per-venue local state snapshot.
|
|
- SharedSignalsIR: IR payload carrying core metrics plus optional privacy budgets and version metadata.
|
|
- Converter: EdgeSignalProcessor.to_ir(signals, context, privacy_budget, version) converts SharedSignals into SharedSignalsIR.
|
|
|
|
Usage sketch:
|
|
- Compute signals via EdgeSignalProcessor.extract_signals(feed).
|
|
- Optionally attach a LocalMarketContext for venue context.
|
|
- Convert to IR via EdgeSignalProcessor.to_ir(signals, context, privacy_budget=0.25, version=1).
|
|
|
|
This addition enables pluggable adapters to interoperate with a canonical IR without altering existing consumers of SharedSignals.
|
|
|
|
This project is designed to be production-friendly, with a real packaging setup, tests, and a clear readme that explains how to extend the system.
|
|
|
|
See pyproject.toml for packaging configuration and the src/edgemarketsignal package for the implementation details.
|