Интерфейс хранилища событий должен поддерживать три основные функции:
• сохранять новые события в правильной последовательности, чтобы мы могли извлекать события в том порядке, в каком они были сохранены;
• уведомлять подписчиков, которые создают проекции, о новых интересующих их событиях, и поддерживать паттерн «Конкурирующие потребители» (https://oreil.ly/WZ9Ss);
• возвращать N событий определенного типа после события X для сверки, то есть для перерасчета на случай потери проекцией, возникновение угрозы или сомнений