Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. 🫖 Status page with uptime monitoring & API monitoring as code 🫖 openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
README.md
Architecture Decision Records #
This directory holds the architecturally significant decisions made on openstatus, in MADR format.
An ADR captures why a decision was made, what alternatives were weighed, and
what trade-offs were accepted. CLAUDE.md documents the conventions in force
today; ADRs explain how those conventions came to be.
Index #
| ADR | Title | Status |
|---|---|---|
| 0000 | Use Markdown Any Decision Records (MADR) | accepted |
| 0001 | Workspace business logic lives in a framework-agnostic services layer | accepted |
| 0002 | Use Effect for retry policies | accepted |
| 0003 | All shared UI comes from @openstatus/ui |
accepted |
| 0004 | Go for the probing tier | accepted |
| 0005 | Turso for application data, Tinybird for time-series | accepted |
| 0006 | Persist external-service incidents in Turso, not Tinybird | accepted |
| 0007 | Store external-service components in Turso, their status history in Tinybird | accepted |
When to write an ADR #
Write one when a decision is hard to reverse, cross-cutting, or non-obvious — for example:
- adopting or dropping a framework, library, or runtime;
- a repo-wide pattern every contributor must follow;
- a data-model or API-contract decision that is expensive to change;
- choosing one approach over a reasonable alternative someone would ask about.
Skip it for routine, local, or easily reversible changes.
How to add one #
- Copy
template.mdtoNNNN-kebab-case-title.md, whereNNNNis the next zero-padded number. - Fill it in. Keep it short — drivers, options, outcome, consequences.
- Add a row to the index above.
- Open it in the same PR as (or just before) the change it describes.
Changing a decision #
ADRs are immutable once accepted. To change a decision, write a new ADR and set
the old one's status to superseded by ADR-NNNN.