Central - data hub spine. Adapters -> NATS/JetStream -> archive.
  • Python 90.6%
  • HTML 9%
  • PLpgSQL 0.4%
Find a file
Matt Johnson 35de09ea93 test: add hot-reload integration tests for cadence changes
Add tests that exercise the ACTUAL running loop with cancel_event
signaling, not just AdapterState math in isolation.

Test cases:
- Test 1: Cadence decrease (60->30) wakes loop immediately
- Test 2: Cadence increase (10->20) extends wait correctly
- Test 3: Enable/disable/enable with gap > cadence polls immediately
- Test 4: Enable/disable/enable with gap < cadence waits

These tests verify the cancel_event mechanism properly interrupts
the sleeping loop when config changes occur via _on_config_change.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-16 05:59:35 +00:00
docs docs: Phase 1a-3 final close-out verification 2026-05-16 04:04:02 +00:00
etc-templates scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
scripts scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
sql feat(db): add migration 002 for updated_at trigger and enabled index 2026-05-16 01:36:30 +00:00
src/central refactor: supervisor always uses DbConfigSource 2026-05-16 03:42:38 +00:00
systemd docs: add systemd unit files with EnvironmentFile directive 2026-05-16 02:38:21 +00:00
tests test: add hot-reload integration tests for cadence changes 2026-05-16 05:59:35 +00:00
.gitignore scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
.python-version foundation: models, adapter ABC, config, CE wire, schema 2026-05-15 21:08:56 +00:00
LICENSE scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
pyproject.toml feat(config): add CLI smoke command and dependencies 2026-05-15 23:08:03 +00:00
README.md scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
uv.lock foundation: models, adapter ABC, config, CE wire, schema 2026-05-15 21:08:56 +00:00

Central

Central is the data hub spine for the infrastructure. Adapters normalize upstream sources into a canonical event shape, publish CloudEvents to NATS/JetStream, and archive to TimescaleDB for historical query. Single-LXC deployment.

Status

Phase 0 — scaffold. Not yet operational.

Architecture

  • Python 3.12 (uv-managed)
  • NATS + JetStream for live event bus
  • TimescaleDB + PostGIS for archive and geospatial query
  • One supervisor process managing adapter lifecycle
  • One archive consumer process persisting events to TimescaleDB
  • Both processes systemd-managed

License

MIT. See LICENSE.