Architecture Decision Record
Status · Context · Decision · Consequences — the canonical ADR template.
Rendering…
Make it your own.
{
"nodes": [
{ "id":"st","type":"stadium","label":"Accepted · 2026-03-15","x":40,"y":40,"fill":"#dcfce7","stroke":"#15803d","motion":"pulse" },
{ "id":"ti","type":"callout","label":"ADR-007: Pick Postgres over Mongo","x":300,"y":40,"fill":"#fef9c3","stroke":"#a16207" },
{ "id":"co","type":"container","label":"Context","x":40,"y":160,"width":600,"height":180,"fill":"rgba(219,234,254,0.4)","stroke":"#2563eb" },
{ "id":"coN","type":"note","label":"Existing services use SQL.\nNeed transactional integrity for orders.\nTeam has Postgres expertise.","x":80,"y":220,"fill":"#fef9c3" },
{ "id":"de","type":"container","label":"Decision","x":680,"y":160,"width":600,"height":180,"fill":"rgba(220,252,231,0.4)","stroke":"#15803d" },
{ "id":"deN","type":"note","label":"Use Postgres with JSONB columns where flexibility is needed; avoid MongoDB.","x":720,"y":220,"fill":"#dcfce7" },
{ "id":"ps","type":"container","label":"Positive consequences","x":40,"y":380,"width":600,"height":180,"fill":"rgba(254,243,199,0.4)","stroke":"#a16207" },
{ "id":"psN","type":"note","label":"+ Strong ACID guarantees\n+ Mature operational tooling\n+ Faster onboarding","x":80,"y":440,"fill":"#fef3c7" },
{ "id":"ng","type":"container","label":"Negative consequences","x":680,"y":380,"width":600,"height":180,"fill":"rgba(254,226,226,0.4)","stroke":"#b91c1c" },
{ "id":"ngN","type":"note","label":"− Manual schema migrations\n− Less flexible nested docs\n− Sharding harder later","x":720,"y":440,"fill":"#fee2e2" }
],
"edges": [
{ "id":"e1","source":"co","target":"de","label":"leads to" },
{ "id":"e2","source":"de","target":"ps" },
{ "id":"e3","source":"de","target":"ng" }
]
}