One thing I really liked here is that the architecture optimizes for failure scenarios, not just happy-path throughput. The transactional outbox + CDC pattern solves the reliability problem first, and the scalability benefits naturally follow.
Another takeaway is your point about keeping the app tier stateless by pushing fanout downstream. That's a design choice that pays off long before you hit "millions of users" because deployments, scaling, and operations all become simpler.
Also appreciated the discussion around HTML-over-the-wire. Whether someone agrees with that choice or not, it's refreshing to see the trade-offs explained instead of treating any architecture as universally correct.
Great write-up that focuses on engineering decisions rather than just technology choices.