Системы ломаются не в момент запуска, а когда нагрузка вырастает в десятки раз. Чтобы этого избежать, мы закладываем горизонтальное масштабирование и слабую связанность сервисов с самого начала.
Очереди, кэширование и асинхронная обработка снимают пиковые нагрузки, а продуманные границы между модулями позволяют развивать продукт, не переписывая его целиком.
Главное правило — проектировать под рост, но не усложнять раньше времени. Мы выбираем архитектуру под реальные сценарии бизнеса, а не под красивые диаграммы.