L2 — Containers
C4 Level 2: Zooms into Stock Market Professional and shows its deployable units — services, databases, and schedulers.
C4 Model — Level 2
The Container diagram answers: What are the high-level technical building blocks, and how do they talk to each other?
Container Diagram
Containers Inventory
| Container | Technology | Responsibility |
|---|---|---|
| Data Ingestor | Python, requests, websockets | Poll & normalise market data |
| Analysis Engine | Python, pandas, pandas-ta, ta-lib | Technical indicators + pattern recognition |
| Signal Generator | Python | Confluence scoring, risk rules, signal assembly |
| Job Scheduler | APScheduler | Pipeline orchestration & timing |
| Market Data Store | SQLite (dev) / TimescaleDB (prod) | Persist OHLCV, indicators, signals |
| Notifier | Python, Discord Webhook | Format and deliver signals |
Deployment
All containers run as a single Python process in development (scheduler + all modules), and can be split into separate Docker containers in production:
docker/
├── ingestor/ # Data poller container
├── analyser/ # Analysis worker container
├── signal-gen/ # Signal generation + notifier
└── timescaledb/ # Database container
The CI pipeline (Gitea Actions) builds images and pushes to the Zot container registry at lego-cloud.eu:30264.