Last updated: 26-01-2026 17:31:21+0000

1. Introduction and Goals

1.1. Requirements Overview

1.2. Quality Goals

1.3. Stakeholders

2. Architecture Constraints

3. System Scope and Context

System Context View: Inventory ServiceSystem Context View: Inventory ServiceGraphQL Federation Provides a federated Graphto clientsInventory Service Reads inventory data andprovides it to clients viasubgraph-inventory. Ordersnew goods if they run out ofstockOrder service Orders new goodsTeam A Maintains and operates theWarehouseTeam B Maintains and operates theOrder serviceWarehouse Provides inventory data viaKafkasubgraph-inventoryTriggers order ifgoods run out ofstock[REST]Reads inventory datafrom[Kafka]maintains andoperatesmaintains andoperatesLegend  system  external person  external system  async relationship (dashed) Context diagram for the web shop inventory system

3.1. Business Context

3.2. Technical Context

4. Solution Strategy

5. Building Block View

5.1. Whitebox Overall System

Container View: Inventory ServiceContainer View: Inventory ServiceGraphQL Federation[system]Inventory Service[system]Warehouse[system]subgraph-inventory[GraphQL] Provides inventory dataInventory Database[PostgreSQL] Stores inventory itemsInventory Provider[SpringBoot, Spring Data JDBC,Kafka Streams] Reads inventory data andprovides it to clients viasubgraph-inventory. Ordersnew goods if they run out ofstockwarehouse.goods[Kafka] Contains metadataregarding goodswarehouse.stock_v1[Kafka] Contains data regarding theamount of goods in stockOrder service Orders new goodsReads and writesinventory datato/fromTriggers order ifgoods run out ofstock[REST]contributes tofederated graphReads[Kafka]Reads[Kafka]Legend  container  external system  external container  system boundary  async relationship (dashed) Container diagram for the inventory domain

5.2. Level 2

Component View: Inventory Service - Inventory ProviderComponent View: Inventory Service - Inventory ProviderInventory Provider[container]Goods Consumer[Spring Cloud Stream BinderKafka] Consumes Kafka topicInventory Query[GraphQL] GraphQL queryInventory ReadService Reads data from databaseInventory Repository[JDBC] Spring JDBC RepositoryInventory WriteService Writes data to database andtriggers orders if goods runout of stockOrder Client Sends orders via POST toorder serviceStock Consumer[Spring Cloud Stream BinderKafka] Consumes Kafka topicsubgraph-inventory[GraphQL] Provides inventory dataInventory Database[PostgreSQL] Stores inventory itemsOrder service Orders new goodswarehouse.goods[Kafka] Contains metadataregarding goodswarehouse.stock_v1[Kafka] Contains data regarding theamount of goods in stockWrites receivedgoods data usingConsumes goodsKafka topicReads data usingIs query of subgraphReads data usingRead/write inventorydataWrites inventory datausing[JDBC]Sends orders using[REST]Sends orders toWrites received stockdata usingConsumes stockKafka topicLegend  container  component  external system  external container  container boundary Component diagram for the Inventory Provider service

6. Runtime View

6.1. <Runtime Scenario 1>

6.2. <Runtime Scenario 2>

6.3. …​

6.4. <Runtime Scenario n>

7. Deployment View

Deployment View: Inventory Service - DefaultDeployment View: Inventory Service - DefaultAWSaccountId123456regioneu-central-1Elastic Kubernetes Service (EKS)Inventory PODautoscaling.max_replicas10autoscaling.min_replicas5imagePullPolicyIfNotPresentport8080resources.limits_cpu3000mresources.limits_memory1500Miresources.requests_cpu2000mresources.requests_memory1500MiDocker ContainerRelational Database Service (RDS)Apollo StudioIngress[NGINX] Used for load balancing andSSLterminationInventory Provider[SpringBoot, Spring Data JDBC,Kafka Streams] Reads inventory data andprovides it to clients viasubgraph-inventory. Ordersnew goods if they run out ofstockInventory Database[PostgreSQL] Stores inventory itemsGraphQL Federation Provides a federated Graphto clientsForwardssubgraph-inventoryqueries toForwards requests toReads and writesinventory datato/fromLegend  container  external system  node Deployment diagram for the Inventory service

8. Alerts

Name Severity Summary Description Expression Time range

InstanceDown

critical

Instance $labels.instance down

$labels.instance of job $labels.job has been down for more than 5 minutes.

up == 0

5m

APIHighRequestLatency

critical

High request latency on $labels.instance

$labels.instance has a median request latency above 1s (current value: $values)

api_http_request_latencies_second{quantile="0.5"} > 1

10m

9. Cross-cutting Concepts

10. Architecture Decisions

11. Quality Requirements

11.1. Quality Tree

11.2. Quality Scenarios

12. Risks and Technical Debts

13. Glossary

Term Definition

<Term-1>

<definition-1>

<Term-2>

<definition-2>