Производительность и надежность

Версия 1.2 от Alexandr Fokin на 2026/07/27 02:24

 Примеры
 
Риски
ТипПричинаПример
Потеря данных в хранилище.Падение ненадежного (например InMemory) хранилища.Потеря счетчика сигналов.
Потеря сигнала.Отправка TriggerEvent без sql TransactionalOutbox.TriggerEvent не был отправлен / Счетчик не был изменен
-> Зависание обработки.
Ложный или дублирующий сигнал.Обработка TriggerEvent без sql TransactionalInbox.TriggerEvent был обработан более одного раза / Счетчик был уменьшен на более чем 1
-> Ложное, преждевременное срабатывание триггера.
  
Выводы
  • Более производительные решения возможны только с использованием InMemory (NoSQL) хранилища. Что ведет к понижению надежности и отсутствию полного ACID.
  • Решение на основа только реляционной БД (SQL) не может гарантировать такой же высокий уровень производительности. Возможно смещение в сторону периодической перепроверки по таймеру (увеличение задержки между завершением работы и реакций на это).