CRUD-реальность
Автор делится своим видением CRUD, и на его взгляд главная проблема заключается в обновлении данных.
Фундаментальная проблема этого подхода заключается в том, что он просто предоставляет интерфейс JSON через HTTP поверх системы записи. Конечно, к нему добавлена некоторая логика авторизации и проверки, но вы по-прежнему просто сериализуете JSON в базу данных и обратно.
Обновление ресурса — это гораздо больше, чем просто замена некоторых полей в таблице. «Учетная запись обновлена» не слишком информативна. Нам необходимо знать, что именно изменилось в аккаунте, поэтому просто сказать «что-то обновилось» недостаточно. Нам нужно иметь возможность сказать «пользователь был деактивирован», «билет заархивирован», «заказ отправлен» или «возврат средств обработан».
Он предлагает несколько решений этой проблемы:
✔️Change Data Capture (CDC) — это приложение, которое умеет обрабатывать логи изменений, выделять из них события об изменении данных и уведомлять об этом потребителя изменений, реализующего бизнес-логику.
✔️Вспомогательная история/таблицы журналов
✔️Введение шаблона транзакционного исходящего ящика — подход, которому отдает предпочтение сам автор
Post #4675
3.3K