Skip to content

A service grows a gateway

A flow diff. The API server becomes a gateway, the mail sender goes, and a cache, a job queue, an email worker and an SMTP relay join; the unchanged boxes keep their rows and their order.

The API server becomes a gateway, the mail sender goes, and a cache, a job queue, an email worker and an SMTP relay join; the unchanged boxes keep their rows and their orderThe API server becomes a gateway, the mail sender goes, and a cache, a job queue, an email worker and an SMTP relay join; the unchanged boxes keep their rows and their order
The version before the change: Web Client, Load Balancer, API Server, Auth Service, Postgres and Mail Sender.The version before the change: Web Client, Load Balancer, API Server, Auth Service, Postgres and Mail Sender.
Before
The version after the change: Web Client, Load Balancer, API Gateway, Auth Service, Postgres, Redis Cache, Job Queue, Email Worker and SMTP Relay.The version after the change: Web Client, Load Balancer, API Gateway, Auth Service, Postgres, Redis Cache, Job Queue, Email Worker and SMTP Relay.
After

Spec

service-change.v1.json
{
"type": "flow",
"direction": "DOWN",
"nodes": [
{"id": "client", "label": "Web Client"},
{"id": "lb", "label": "Load Balancer"},
{"id": "api", "label": "API Server"},
{"id": "auth", "label": "Auth Service"},
{"id": "db", "label": "Postgres", "shape": "cylinder"},
{"id": "mail", "label": "Mail Sender"}
],
"edges": [
{"from": "client", "to": "lb"},
{"from": "lb", "to": "api"},
{"from": "api", "to": "auth"},
{"from": "api", "to": "db"},
{"from": "auth", "to": "db"},
{"from": "api", "to": "mail"}
]
}

Draw it yourself

Terminal window
diago diff service-change.v1.json service-change.v2.json > service-change.diff.svg

Open it in the playground to edit it in your browser.