Chapter 08 - Decoupling and Integration
本章目標
看完本章後,你應該可以回答:
- SQS、SNS、EventBridge、Step Functions、API Gateway、Kinesis 怎麼分?
- 什麼時候需要 queue?
- 什麼時候是 pub/sub?
- event-driven、workflow、streaming 題目怎麼判斷?
一句話
Integration 是讓系統元件不要互相拖垮,並讓同步流程、非同步流程、事件流程各自用對工具。
架構位置
Integration 通常位於 compute 之間、compute 和 data processing 之間,負責 decouple、buffer、fan-out、orchestration 或 streaming。
常見服務與概念
- SQS
- SNS
- EventBridge
- Step Functions
- API Gateway
- Kinesis
- DLQ
- FIFO queue
- fan-out
PM 視角
PM 要問:使用者是否需要立即結果?後端可不可以慢慢處理?失敗是否要 retry?是否一個事件要通知多個系統?流程是否有多步驟和狀態?
Developer / DevOps 視角
工程師要能把 coupling 降低:用 SQS buffer 不穩定流量,用 SNS fan-out 通知,用 EventBridge 做事件路由,用 Step Functions 管多步驟狀態。
考試怎麼問
常見題型會問:
- 前端流量暴增,後端處理速度固定
- 一個事件要通知多個訂閱者
- 多步驟流程要可視化並管理 retry
- streaming click data 或 IoT data 要即時處理
常見陷阱
| 陷阱 | 正確方向 |
|---|---|
| SNS 和 SQS 混淆 | SNS 是 pub/sub,SQS 是 queue |
| 所有非同步都用 Lambda 直連 | 先看是否需要 buffer / retry / DLQ |
| Step Functions 當 queue | Step Functions 是 workflow orchestration |
| Kinesis 當普通 job queue | Kinesis 偏 streaming data |