Why streaming an 8-second answer makes it feel fast even though it isn't, how to pick between long-poll, SSE, and WebSockets, and how to build a NestJS SSE endpoint that proxies a streaming LLM call — including the proxy-buffering, cancellation, and mid-stream-error gotchas that bite everyone the first time.
Placing an order touches four services and four databases. There's no @Transactional block stretched across all of them. So what happens when payment succeeds but inventory is empty? Here's the saga pattern, its two flavors, and the hard truths nobody warns you about.