ACID vs BASE
Вчера в NarisApp разбирали разницу между ACID и BASE транзакциями, что я понял по результату:
💡 часто люди переживают о согласованности данных для которых не требуется строгой согласованности. Нужно учиться разделять ситуацию, когда между данными есть сильная логическая связь и когда эта связь слабая.
💡 ORM скрывая часть логики работы с СУБД может не помогать, а мешать правильному восприятию запросов. Например, TypeORM реализуя Soft Delete сама подставляет null вместо удаленного пользователя, что логично, но используя мягкое удаление мы рассчитываем всегда получать данные пользователя, просто с пометкой Delete. Отсюда возникает недопонимание и ошибки.
💡 привычка работать с ACID вырабатывает страх "несогласованности" с ним бороться сложнее всего. С этим нужно работать.
💡 оркестрация и хореаграфия - это не всегда про микросервисы, оркестратор - это любой внешний "управленец", который решает как обрабатывать транзакцию. Причем это может быть - скрипт, человек, обоработчик события и т.д.
Вчера в NarisApp разбирали разницу между ACID и BASE транзакциями, что я понял по результату: