Booking platform
A booking platform with two perspectives, the owning team and the technical debt as the teams rated it. Each view selects one; this one shows the teams: every box gains a stripe in its category's color and names the category, a legend lists the categories, and the guest and the payment provider, which belong to none, are shown as not stated. The description gives a sentence per category, the table a column. --perspective debt shows the other. Nothing is derived or rated by chartlet. Illustrative values.
Booking platform
examples/service-perspectives.json{
"schemaVersion": 1,
"type": "architecture",
"title": "Booking platform",
"source": "Architecture handbook, booking model",
"width": 1300,
"height": 520,
"architecture": {
"boundaries": [
{
"id": "cloud",
"label": "Cloud account"
},
{
"id": "data",
"label": "Data zone",
"in": "cloud"
}
],
"components": [
{
"id": "guest",
"label": "Guest",
"kind": "person"
},
{
"id": "app",
"label": "Booking app",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"in": "cloud"
},
{
"id": "booking",
"label": "Booking service",
"sublabel": "Java",
"in": "cloud"
},
{
"id": "pricing",
"label": "Pricing service",
"sublabel": "Go",
"in": "cloud"
},
{
"id": "db",
"label": "Bookings",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "legacy",
"label": "Legacy inventory",
"kind": "database",
"in": "data"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
}
],
"connections": [
{
"id": "use",
"from": "guest",
"to": "app",
"label": "books"
},
{
"id": "call",
"from": "app",
"to": "gateway",
"technology": "HTTPS"
},
{
"id": "route",
"from": "gateway",
"to": "booking",
"label": "routes"
},
{
"id": "price",
"from": "booking",
"to": "pricing",
"label": "asks price"
},
{
"id": "store",
"from": "booking",
"to": "db",
"technology": "SQL"
},
{
"id": "stock",
"from": "booking",
"to": "legacy",
"label": "checks rooms"
},
{
"id": "charge",
"from": "booking",
"to": "pay",
"label": "charges",
"technology": "HTTPS"
}
],
"perspectives": [
{
"key": "owner",
"title": "Team",
"description": "The team named in the service catalogue runs each component.",
"categories": [
{
"label": "Storefront",
"components": [
"app"
]
},
{
"label": "Bookings",
"components": [
"booking",
"pricing"
]
},
{
"label": "Platform",
"components": [
"gateway",
"db",
"legacy"
]
}
]
},
{
"key": "debt",
"title": "Technical debt",
"description": "Debt as the owning team rated it in the last review.",
"categories": [
{
"label": "low",
"components": [
"app",
"pricing"
]
},
{
"label": "medium",
"components": [
"gateway",
"db"
]
},
{
"label": "high",
"components": [
"booking"
]
}
]
}
],
"views": [
{
"key": "owners",
"title": "Booking platform: who runs what",
"components": [
"guest",
"app",
"gateway",
"booking",
"pricing",
"db",
"legacy",
"pay"
],
"perspective": "owner"
},
{
"key": "debt",
"title": "Booking platform: technical debt",
"components": [
"guest",
"app",
"gateway",
"booking",
"pricing",
"db",
"legacy",
"pay"
],
"perspective": "debt"
}
]
}
}Focus
Source: Architecture handbook, booking model
Show chart data
| Component | Kind | Boundary | Team | Connects to |
|---|---|---|---|---|
| Guest | person | not stated | Booking app (books) | |
| Booking app | frontend | Storefront | API gateway (via HTTPS) | |
| API gateway | service | Cloud account | Platform | Booking service (routes) |
| Booking service | service | Cloud account | Bookings | Pricing service (asks price), Bookings (via SQL), Legacy inventory (checks rooms), Payment provider (charges, via HTTPS) |
| Pricing service | service | Cloud account | Bookings | |
| Bookings | database | Cloud account › Data zone | Platform | |
| Legacy inventory | database | Cloud account › Data zone | Platform | |
| Payment provider | external system | not stated |