Командовал
Используйте Commanded для создания собственных приложений Elixir по шаблону CQRS/ES.
Обеспечивает поддержку:
- Регистрация и отправка команд.
- Хостинг и делегирование агрегатам.
- Обработка событий.
- Долго работающие менеджеры процессов.
Commanded предоставляет вам прочную техническую основу для дальнейшего развития. Это позволяет вам сосредоточиться на моделировании своей предметной области, самой важной части вашего приложения, и быстрее создавать лучшее приложение.
Для обеспечения устойчивости вы можете использовать Commanded с одним из следующих хранилищ событий:
- EventStore — библиотека Elixir, использующая Postgres для обеспечения устойчивости.
- EventStoreDB — потоковая база данных, созданная для источников событий.
- Хранилище событий в памяти — включено только для тестового использования.
Пожалуйста, обратитесь к журналу изменений, чтобы узнать о функциях, исправлениях ошибок и любых советах по обновлению, включенных в каждый выпуск.
Требуется Erlang/OTP v21.0 и Elixir v1.11 или новее.
Спонсоры
- Посмотреть спонсоров и покровителей
- Журнал изменений
- Вики
- Что такое CQRS/ES?
- Часто задаваемые вопросы
- Получение помощи
- Последний опубликованный пакет и документация Hex
Лицензия MIT
Этот README и последующие руководства соответствуют master
ветке, которая может не быть опубликованной в данный момент версией.
Прочтите документацию последней опубликованной версии Commanded on Hex.
Обзор
- Начиная
- Выбор магазина для мероприятий
- EventStore на базе PostgreSQL
- Магазин мероприятий Грега Янга
- Использование команды
- Агрегаты
- Пример агрегата
-
Commanded.Aggregate.Multi
- Снимки совокупного состояния
- Команды
- Обработчики команд
- Отправка и маршрутизация команд
- Определить совокупную идентичность
- Регистрация нескольких команд
- Тайм-ауты отправки
- Гарантия стабильности отправки
- Отправка возврата результата выполнения
- Общий срок службы
- Составные командные маршрутизаторы
- Промежуточное ПО
- Пример промежуточного программного обеспечения
- Составные командные маршрутизаторы
- События
- События домена
- Обработчики событий
- Обновление событий
- Менеджеры процессов
- Пример менеджера процессов
- Надзор
- Сериализация
- Сериализатор JSON по умолчанию
- Настройка сериализации JSON
- Декодирование структур событий
- Использование альтернативного формата сериализации
- Настройка сериализации
- Читать модельные прогнозы
- Развертывание
- Развертывание одного узла
- Развертывание кластера с несколькими узлами
- Многоузловое, но не кластерное развертывание
- Тестирование с помощью Commanded
- Используется в производстве?
- Пример приложения
- Изучите команды за 20 минут
- Выбор поставщика магазина событий
- Оснастка
- Содействие
- Нужна помощь?
Используется в производстве?
Да, посмотрите компании, использующие Commanded.
Пример приложения
Conduit — это пример веб-приложения Phoenix 1.3 с открытым исходным кодом, реализующего шаблон CQRS/ES в Elixir. Он был создан для демонстрации реализации Commanded в приложении Elixir для книги Building Conduit.
Изучите команды за 20 минут
Посмотрите, как Бернардо Аморим представляет CQRS и источники событий на Code Beam SF 2018. Включает руководство о том, как реализовать приложение Elixir с использованием этих концепций с помощью Commanded.
Содействие
Запросы на включение новых или улучшенных функций, а также расширение документации приветствуются.
Пожалуйста, следуйте существующим соглашениям по кодированию или обратитесь к руководству по стилю Elixir.
Вы должны включить модульные тесты, чтобы охватить любые изменения. Запустите mix test
, чтобы выполнить набор тестов.
Авторы
Commanded существует благодаря следующим людям, которые внесли свой вклад.
- Адиль Ярулин
- Александр де Соуза
- Андрей Акулов
- Анджей Слива
- Бен Смит
- Бенджамин Мосс
- Бернардо Аморим
- Брентон Аннан
- Крис Бродт
- Крис Мартин
- Кристоф Джунье
- Данило Силва
- Дэйв Люсия
- Дэвид Карлин
- Дамир Вандич
- Дэнни Фридланд
- Дилаксун Бавараян
- Эрнесто
- Фернандо Мендес
- Флориан Эбелинг
- Генри Хазан
- Джей Си
- Джоан Сапата
- Жоао Жилберту Моура
- Жоау Таллис
- Джон Уилгер
- Джозеф Лозано
- Киан-Мэн Анг
- Кок Джей Сэм
- Лейф Генсерт
- Луис Феррейра
- Марсело Домингес
- Мэтт Даути
- Мэтью Болиг
- Майкл Херольд
- Мигель Пальяс
- Найджел Торн
- Олафур Арасон
- Паоло Лауренти
- Патрик Детлефсен
- Фил Чен
- Рафаэль Люстин
- Штефан Люптак
- Тобиас Малецкий
- Владимир Дробышевский
- Вилли Вомбат
- Йордис Прието
- Юрий де Фигейредо
- Звен
Нужна помощь?
Пожалуйста, откройте вопрос, если у вас возникла проблема или вам нужна помощь. Вы также можете обратиться за помощью на канале #command в официальном Elixir Slack.