Skip to content
Decision matrix (weighted / Pugh) templates

Decision Matrix — Event Streaming Platform (ADR)

An architecture decision record for an event streaming platform: measured throughput, ops effort and run cost alongside scored replay, ordering, tooling and lock-in, in three weighted groups. The classic broker fails the 60k msg/s must-have; self-hosted Kafka ranks first at 3.88 of 5, 0.20 ahead of the managed service — a fragile lead that reverses if ops effort's weight rises from 18% to 22.4%. Illustrative values.

Template previewDecision matrix (weighted / Pugh)
ADR-014 — event streaming platformADR-014 — event streaming platformOrder, payment and inventory events; peak load test at 3× Black FridayWeighted scoringScale 1–57 criteria4 options3 groupsCRITERIONWEIGHTManagedKafka serviceSelf-hostedKafkaon our KubernetesclustersRECOMMENDEDCloud pub/subserviceClassicmessagebrokerthree-node clusterEXCLUDEDFIT TO THE WORKLOAD50%4.664.802.882.10Sustained throughputmeasured, k msg/s · must ≥ 60 k msg/s15%30% of group140 k msg/sscore 3.9180 k msg/sscore 595 k msg/sscore 2.638 k msg/sscore 1Replay & long retention15%30% of group5532Per-key ordering10%20% of group5534Connectors & stream tooling10%20% of group5432OPERATING IT30%3.862.603.403.57Ops effortmeasured, FTE · lower is better18%60% of group0.4 FTEscore 4.41.6 FTEscore 10.2 FTEscore 50.8 FTEscore 3.3Lock-in risk (1 = low)lower is better12%40% of group3152COST20%1.003.522.285.00Monthly run cost at forecast volumemeasured, $k · lower is better20%100% of group$18.5kscore 1$11.2kscore 3.5$14.8kscore 2.3$6.9kscore 5Weighted scoreΣ weight × score, of 53.6973.8% of max3.8877.7% of max2.9258.3% of max3.1262.4% of maxRankhighest score first2nd1st3rdexcludedWeighted totalsEach bar is split into its criteria's weighted contributions (colours match the dots in the table); ranked best first.012345Self-hosted Kafka3.8877.7%Managed Kafka service3.6973.8%Cloud pub/sub service2.9258.3%Classic message broker3.1262.4%excluded — fails a must-haveFINDINGS & SENSITIVITYFRAGILESelf-hosted Kafka ranks first at 3.88 of 5 (77.7%), 0.20 ahead of Managed Kafka service.Sensitivity (fragile): Managed Kafka service draws level with Self-hosted Kafka if the weight on “Ops effort” rises from 18% to 22.4%(+4.4 points), the other weights rescaled in proportion — the smallest single-weight change that changes the winner.Managed Kafka service would draw level by scoring 1.37 instead of 3 on “Lock-in risk (1 = low)” — the smallest single-score change thatwould.Classic message broker is excluded — it fails a must-have (“Sustained throughput” is 38 k msg/s, must be ≥ 60 k msg/s), so its total of3.12 is not ranked.Illustrative measurements and costs for a fictional retailer's platform team.Throughput is the sustained rate at p99 latency under 250 ms in our load test.

Make it your own.

title "ADR-014 — event streaming platform"
subtitle "Order, payment and inventory events; peak load test at 3× Black Friday"
note "Illustrative measurements and costs for a fictional retailer's platform team."
note "Throughput is the sustained rate at p99 latency under 250 ms in our load test."

option "Managed Kafka service"
option "Self-hosted Kafka" "on our Kubernetes clusters"
option "Cloud pub/sub service"
option "Classic message broker" "three-node cluster"

group "Fit to the workload" weight 50%
  "Sustained throughput" weight 30 unit "k msg/s" must >= 60 : 140 180 95 38
  "Replay & long retention"      weight 30 : 5 5 3 2
  "Per-key ordering"             weight 20 : 5 5 3 4
  "Connectors & stream tooling"  weight 20 : 5 4 3 2
group "Operating it" weight 30%
  "Ops effort" weight 60 unit "FTE" lower : 0.4 1.6 0.2 0.8
  "Lock-in risk (1 = low)" weight 40 lower : 3 1 5 2
group "Cost" weight 20%
  "Monthly run cost at forecast volume" weight 100 unit "$k" lower : 18.5 11.2 14.8 6.9