#совет Всё, что может сломаться — обязательно сломается
Этот принцип стоит учитывать на каждом этапе проектирования приложений.
Если у вас есть база данных, но вы не делаете бэкапы, рано или поздно вы столкнётесь с потерей данных. Если ожидается рост нагрузки, но вы не продумали масштабирование сервисов, однажды они станут недоступны. Независимо от того, речь идёт об инфраструктуре или бизнес-логике, всегда важно предусматривать сценарии, при которых что-то может пойти не так.
Это как в кино: если на стене висит ружьё, оно обязательно выстрелит. Аналогично и с узкими местами в архитектуре. Например, если у вас нет ретраев при работе с внешними сервисами, однажды из-за сбоя сети вы потеряете важные данные.
При проектировании обращайте внимание на потенциально уязвимые точки. Либо сразу закладывайте решения этих проблем, либо заранее продумывайте, как будете их устранять в будущем. Не всегда нужно реализовывать все защитные механизмы с самого начала, но если вы понимаете, что сервис будет расти, стоит заранее предусмотреть, как вы будете масштабироваться или менять стратегию.
Это поможет избежать многих проблем в дальнейшем и обеспечит стабильную работу вашего приложения.