"""Demo: end-to-end DeltaTrace pipeline. Generates synthetic market data, builds an event graph, replays it deterministically, and produces a signed audit log. """ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey from .adapters import FIXFeedAdapter, SandboxExchangeAdapter from .audit_log import AuditLog from .event_graph import EventGraph, EventType from .replay_engine import ReplayEngine def main() -> None: # 1. Setup graph = EventGraph() fix_adapter = FIXFeedAdapter() sandbox = SandboxExchangeAdapter(fill_rate=1.0, latency_ms=0.1) key = Ed25519PrivateKey.generate() audit = AuditLog(key) # 2. Ingest FIX market data fix_msg = {"35": "W", "55": "AAPL", "bid": "185.50", "ask": "185.55", "44": "185.52", "38": "1000"} tick_events = fix_adapter.ingest(fix_msg) for ev in tick_events: graph.add_event(ev) # 3. Generate signal from tick from .event_graph import Event signal = Event.create(EventType.SIGNAL, {"strategy": "momentum", "direction": "buy", "strength": 0.85}) graph.add_event(signal) graph.add_edge(tick_events[0].id, signal.id, label="tick->signal") # 4. Plan delta plan = Event.create(EventType.PLAN_DELTA, {"action": "buy", "symbol": "AAPL", "qty": 500, "limit": 185.55}) graph.add_event(plan) graph.add_edge(signal.id, plan.id, label="signal->plan") # 5. Risk check risk = Event.create(EventType.RISK_CHECK, {"check": "position_limit", "result": "pass", "exposure": 92750}) graph.add_event(risk) graph.add_edge(plan.id, risk.id, label="plan->risk_check") # 6. Order via sandbox exchange order_events = sandbox.ingest({"type": "order", "symbol": "AAPL", "price": 185.55, "qty": 500, "side": "buy"}) for ev in order_events: graph.add_event(ev) graph.add_edge(risk.id, order_events[0].id, label="risk->order") if len(order_events) > 1: graph.add_edge(order_events[0].id, order_events[1].id, label="order->fill") # 7. Audit log for ev in graph.topological_order(): audit.append(ev.id, f"processed:{ev.event_type.value}", ev.payload) # 8. Replay engine = ReplayEngine() result = engine.replay(graph) # 9. Output print(f"Events in graph: {len(graph.events)}") print(f"Edges: {len(graph.edges)}") print(f"Replay: {result.events_replayed} events, {result.total_latency_ns / 1e6:.2f}ms span") print(f"Fidelity: {result.fidelity_score}") print(f"Audit entries: {len(audit.entries)}") print(f"Audit chain valid: {audit.verify()}") if __name__ == "__main__": main()