Состояние — это информация, которую система сохраняет и которая каким-то образом влияет на её функциональность. Например, веб-сайт может отслеживать пользователей, которые вошли в систему. Редактор документов запоминает текущий текст. Фоновый рабочий процесс регистрирует, какие задачи он выполнил, а какие ожидают выполнения. База данных хранит записи, записанные в неё, столько, сколько необходимо. Любое полезное программное обеспечение обычно должно управлять состоянием для выполнения своей предполагаемой функциональности.
Сложность заключается в поддержании правильности состояния даже при перекрывающихся запросах, добавлении серверов, сбоях машин и развёртывании изменений программного обеспечения. Часто распространённый совет — «сделать приложение без состояния». Но этот совет требует пояснения. Обычно это означает сделать конкретные серверы приложений легко заменяемыми, помещая их важное состояние в другое место. Это не означает полного отсутствия состояния.
Понимание такой настройки требует рассмотрения того, почему существует состояние, кто им владеет и что происходит, когда оно становится недоступным. В этой статье мы рассмотрим, почему состояние является самой сложной вещью в разработке программного обеспечения, и множество стратегий, которые разработчики могут использовать для управления им.
Источник: ByteByteGo · Сводку подготовил HeadlinesBriefing