Детерминированная потоковая обработка — это основа для создания масштабируемых систем, управляемых событиями. Отсутствие детерминизма может быть очень болезненным для бизнеса (представьте себе потерю финансовых транзакций, пропущенные оповещения, неправильную агрегацию данных).
Существуют определенные советы и приемы реализации детерминизма. Ключевые слова здесь:
Временные метки Планирование событий Водяные знаки Время потока Вы должны понимать природу неупорядоченых и запоздалых событий. И стратегии их обработки.
Также необходимо поддерживать повторную обработку.
И нужно учитывать периодические сбои.
Как разговаривать с пользователями при создании стартапа? Какую книгу лучше всего прочитать на эту тему? Три распространенные ошибки, которые совершают все. Пять отличных вопросов, которые вы можете задать в каждом интервью с пользователем. Как разговаривать с пользователями на трех стадиях: стадии идеи, стадии прототипа и стадии запуска.
Обо всем этом рассказывается в Школе стартапов Y Combinator — Урок «Как разговаривать с пользователями».
Как обычно, вот моя сводная ментальная карта:
Скачать полную ментальную карту (PDF)
Основы событийно-управляемой обработки в архитектурах, управляемых событиями:
Типовая структура микросервиса Типовые типы трансформации событий, 2 сценария ветвления, слияние потоков Перепартиционирование событий и когда это может быть полезно Сопартиционирование событий и когда это необходимо Назначение партиций конкретному микросервису занимающемуся обработкой данных. Три стратегии для этого. Восстановление после сбоев микросервисов обработки данных без поддержки состояния. Эти темы раскрыты в главе 5 книги, которую мы сейчас изучаем:
“Создание событийно-управляемых микросервисов” Адама Беллемара.
Освобождение данных — это процесс перехода от монолита к микросервисам путем разделения систем с точки зрения зависимостей данных.
Существуют три паттерна для освобождения данных:
На основе запросов На основе журнала На основе таблиц У каждого паттерна есть свои плюсы и минусы, а также другие важные соображения.
Изменения определения данных (миграция структуры данных) также должны поддерживаться выбранным подходом к освобождению данных.
Существуют различные фреймворки/инструменты, которые упрощают процесс освобождения данных. Обратите внимание, что инструменты CDC не являются конечным пунктом вашей архитектуры, а всего лишь начальным шагом ваших измерений.