galena

Design decisions

The choices that shape Galena, what was weighed, and when to revisit them.

Each page records one decision: the problem, what was chosen, the alternatives, what it costs, and what would make it worth revisiting. Where something decided is not built yet, the page says so.

DecisionIn short
Probes on Lambda, workflows on trigger.devPer-minute checks are cheap on Lambda; long, retrying workflows suit trigger.dev
A static page in its own regionsThe page must outlive the service it reports on
DynamoDB for telemetry, Postgres for the domainMillions of disposable writes, and a small relational core that can sleep
The Data API, no NATNo VPC Lambdas, no NAT gateway, a database that pauses
SQS FIFO grouped by monitorOrdered, de-duplicated results per monitor
Quorum, hysteresis and an approval gateA false public incident costs more than a slightly late one
A transactional outboxNo committed change loses its event, and nothing polls the database
Data first, HTML secondChanges visible in seconds without a build per keystroke
A static dashboardNo web compute to run or keep warm
Apache-2.0, single tenantEasy to adopt; one workspace per deployment, ready for more
Global identity tablesPeople are global; workspaces are joined through membership
Status colours and calm motionColour adds meaning, never carries it alone