Architecture Overview¶
Wait Time Canada is structured as a data observatory pipeline:
- Provincial source pages are scraped by backend jobs.
- Measurements are stored with strict ontology metadata in Neon PostgreSQL.
- Aggregation and quality services derive analytics-ready summaries.
- Next.js server routes expose read APIs for map, methods, data-quality, and analytics views.
Core Principles¶
- Preserve semantic meaning; do not normalize incomparable measurements.
- Make uncertainty explicit (divergence warnings, data-quality status, availability states).
- Keep provenance and operational health first-class.
- Enforce manual verification before hospital publication.
Architecture Documents¶
- API architecture:
docs/architecture/api.md - Database architecture:
docs/architecture/database.md - Public API reference:
docs/API.md - Metric ontology ADR:
docs/adr/0002-metric-ontology.md - Scraper runtime ADR:
docs/adr/0014-unified-scraper-runtime-pipeline.md
Runtime Components¶
- Backend package:
backend/src/waittime/ - Frontend app/API:
frontend/app/ - Migrations:
backend/migrations/ - CI/ops workflows:
.github/workflows/ - Scraper CLI delegates persistence/heartbeat/anomaly flow through
BaseScraper.run(...)