Skip to content

ADR 0001: Event-Driven Runtime Architecture

Status

Accepted

Date

2025-01-15

Context

IRIS performs complex analytical processing of market data:

  • candle ingestion
  • indicator computation
  • pattern detection
  • market-regime construction
  • cross-market correlation
  • signal generation
  • signal fusion
  • investment-decision generation
  • portfolio management

A naive architecture would execute all of this through:

  • cron jobs
  • synchronous pipelines
  • periodic batch computation

That approach scales poorly and recovers poorly after failures.

Decision

IRIS uses an event-driven runtime pipeline.

Pipeline:

candle_closed
  -> indicator_updated
  -> analysis_requested
  -> pattern_detected
  -> decision_generated
  -> portfolio_actions

Each stage is implemented as an independent worker.

Workers exchange events through Redis Streams.

Consequences

Positive

  • subsystem independence
  • better failure resilience
  • horizontal-scaling potential
  • straightforward event replay

Negative

  • higher runtime complexity
  • stronger observability requirements

See also