IT to Capital
Event Storming на примере архитектуры фондовой биржи. Цикл статей от IBM: - https://developer.ibm.com/tutorials/reactive-in-practice-1/
"Modelling Reactive Systems with Event Storming and Domain-Driven Design"
- https://blog.redelastic.com/corporate-arts-crafts-modelling-reactive-systems-with-event-storming-73c6236f5dd7
#DistributedSystems #DDD #Microservices #EDA
- https://blog.redelastic.com/corporate-arts-crafts-modelling-reactive-systems-with-event-storming-73c6236f5dd7
#DistributedSystems #DDD #Microservices #EDA
Medium
Modelling Reactive Systems with Event Storming and Domain-Driven Design
Learn how to design reactive systems using the techniques of Event Storming and Domain-Driven Design.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Сервис для коллективной разработки Event Storming и Context Mapping от Vaughn Vernon: Domain Modeling, Robot! - https://domorobo.to/ - https://twitter.com/VaughnVernon/status/1443670501235167244?s=20 #DDD #EventStorming #SoftwareArchitecture
Vaughn Vernon подготовил ряд демонстрационных приложений с использованием VLINGO XOOM. Там же есть широко-известные примеры из Красной Книги "Implementing Domain-Driven Design".
xoom-examples
The VLINGO XOOM examples demonstrating features and functionality available in the reactive components.
- https://github.com/vlingo/xoom-examples
Если кто-то помнит, еще год назад активно обсуждалась тема, почему бы не генерировать автоматически код DDD-приложения по модели? Похоже, что Vaughn Vernon неплохо продвинулся в этом направлении:
- https://github.com/vlingo/xoom-designer/blob/master/README.md#project-generation
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
xoom-examples
The VLINGO XOOM examples demonstrating features and functionality available in the reactive components.
- https://github.com/vlingo/xoom-examples
Если кто-то помнит, еще год назад активно обсуждалась тема, почему бы не генерировать автоматически код DDD-приложения по модели? Похоже, что Vaughn Vernon неплохо продвинулся в этом направлении:
- https://github.com/vlingo/xoom-designer/blob/master/README.md#project-generation
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
GitHub
GitHub - vlingo/xoom-examples: The VLINGO XOOM examples demonstrating features and functionality available in the reactive components.…
The VLINGO XOOM examples demonstrating features and functionality available in the reactive components. See each of the submodules for specific examples. - vlingo/xoom-examples
Перевод мини-курса Брайана Кукси "Введение в API", выполненный коллегами из Systems Education
- https://systems.education/api-intro
Оригинал:
- https://zapier.com/learn/apis/
Местами нужно вносить поправки на возраст материала.
#SoftwareArchitecure #DistributedSystems #Integration
- https://systems.education/api-intro
Оригинал:
- https://zapier.com/learn/apis/
Местами нужно вносить поправки на возраст материала.
#SoftwareArchitecure #DistributedSystems #Integration
systems.education
■ [Перевод книги] Введение в API. Мини-курс и книга Брайана Кукси
Редактура Дениса Бескова и Артёма Стукалова
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Vaughn Vernon подготовил ряд демонстрационных приложений с использованием VLINGO XOOM. Там же есть широко-известные примеры из Красной Книги "Implementing Domain-Driven Design". xoom-examples The VLINGO XOOM examples demonstrating features and functionality…
Proto.Actor's Realtime-Map demo has been ported to Golang.
Learn how to build real-time visualizations using the actor model with Proto.Actor
https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19
Real-time Map displays real-time positions of public transport vehicles in Helsinki. It's a showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
- https://github.com/asynkron/realtimemap-go
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
Learn how to build real-time visualizations using the actor model with Proto.Actor
https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19
Real-time Map displays real-time positions of public transport vehicles in Helsinki. It's a showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
- https://github.com/asynkron/realtimemap-go
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
Twitter
Proto.Actor
Our Realtime-Map demo has been ported to @golang by @marcinbudny Learn how to build real-time visualizations using the actor model with @protoactor github.com/asynkron/realt…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Proto.Actor's Realtime-Map demo has been ported to Golang. Learn how to build real-time visualizations using the actor model with Proto.Actor https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19 Real-time Map displays…
Нужно было, наверное, немного прокомментировать предыдущий пост, судя по недооцененной статистике.
Actor Model - чрезвычайно мощный механизм в DDD. Vaughn Vernon написал даже отдельную книгу "Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka", и создал несколько примеров:
- https://github.com/VaughnVernon/DDDwithActors
А сейчас Vaughn Vernon работает над xoom-actors:
- https://github.com/vlingo/xoom-actors
Proto.Actor разрабатывается автором Akka.NET. Здесь он пишет почему он начал новый проект:
- https://github.com/asynkron/protoactor-go#history
Причем, начал он писать его на Golang, хотя при этом поддерживаются языки Golang, C# and Java/Kotlin.
Для меня лично реализация на Golang имеет важное значение с точки зрения сертификации. Мы присматриваемся к Proto.Actor, и при удобном случае намерены попробовать его в действии.
Ребята так же создали демонстрационное приложение на Golang с использованием Proto.Actor, которое является аналогом real-time отображения общественного транспорта на Яндекс.Картах.
Кстати, это - клон. Оригинал написан на .NET.
В век, когда даже обычных DDD reference applications на Golang можно наскрести всего пару штук, reference application от создателей Proto.Actor с использованием Actor Model представляет собою определенный интерес.
Ну и еще это событие показывает, что Golang повзрослел, и практики проектирования вошли в Golang серьезно и надолго. Времена спагетти-кода и фраз “Don’t do Java in Golang!" остались в истории.
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
Actor Model - чрезвычайно мощный механизм в DDD. Vaughn Vernon написал даже отдельную книгу "Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka", и создал несколько примеров:
- https://github.com/VaughnVernon/DDDwithActors
А сейчас Vaughn Vernon работает над xoom-actors:
- https://github.com/vlingo/xoom-actors
Proto.Actor разрабатывается автором Akka.NET. Здесь он пишет почему он начал новый проект:
- https://github.com/asynkron/protoactor-go#history
Причем, начал он писать его на Golang, хотя при этом поддерживаются языки Golang, C# and Java/Kotlin.
Для меня лично реализация на Golang имеет важное значение с точки зрения сертификации. Мы присматриваемся к Proto.Actor, и при удобном случае намерены попробовать его в действии.
Ребята так же создали демонстрационное приложение на Golang с использованием Proto.Actor, которое является аналогом real-time отображения общественного транспорта на Яндекс.Картах.
Кстати, это - клон. Оригинал написан на .NET.
В век, когда даже обычных DDD reference applications на Golang можно наскрести всего пару штук, reference application от создателей Proto.Actor с использованием Actor Model представляет собою определенный интерес.
Ну и еще это событие показывает, что Golang повзрослел, и практики проектирования вошли в Golang серьезно и надолго. Времена спагетти-кода и фраз “Don’t do Java in Golang!" остались в истории.
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices #ActorModel #DistributedSystems #CQRS #EventSourcing
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Proto.Actor's Realtime-Map demo has been ported to Golang.
Learn how to build real-time visualizations using the actor model with Proto.Actor
https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19
Real-time Map displays…
Learn how to build real-time visualizations using the actor model with Proto.Actor
https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19
Real-time Map displays…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Proto.Actor's Realtime-Map demo has been ported to Golang. Learn how to build real-time visualizations using the actor model with Proto.Actor https://twitter.com/ProtoActor/status/1452306575733964808?t=JYHHNKiQifzn2kFRrUuPCw&s=19 Real-time Map displays…
Интересные рассуждения на тему, должна ли гарантия доставки возлагаться на инфраструктуру, или же в этом должна быть заинтересована логика более высокого уровня политики? В последнем случае становится возможным существенно снизить накладные расходы на инфраструктуру и повысить performance.
"Nobody Needs Reliable Messaging" by Marc de Graauw
- https://www.infoq.com/articles/no-reliable-messaging/
Отдельный интерес вызвал описанный в статье кейс с нарушением согласованности (нарушением очередности доставки сообщений). Я встречал эту проблему в некоторых российских банках и брокерах, когда событие расходной операции успевает обработаться раньше, чем событие приходной операции, что вызывает превышение лимита технического овердрафта - все как в статье.
Конечно, тут речь идет уже о другой проблеме - выбор и достижение правильной модели согласованности:
- https://jepsen.io/consistency
В статье эта тема затронута, но не раскрыта.
Небольшую сложность в понимание статьи вносит тот факт, что в ней не делается четкого различия между Командой (когда отправитель осведомлен о получателе) и Событием. И не хватает взгляда с позиции достижения Low Coupling.
Но в целом, статья заслуживает внимания.
Кстати, по поводу моделей согласованности - одной из оптимальных и часто используемых моделей согласованности, которая позволяет достигнуть наибольшего уровня параллелизма при наименьших последствиях нарушения последовательности обработки, является Causal Consistency:
- https://t.me/emacsway_log/562
Vaughn Vernon тоже не обошел эту проблему стороной:
- https://t.me/emacsway_log/62
У меня по этой теме в свое время набралось материала на целую статью:
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/
#DDD #Microservices #DistributedSystems #SoftwareArchitecture
"Nobody Needs Reliable Messaging" by Marc de Graauw
- https://www.infoq.com/articles/no-reliable-messaging/
Отдельный интерес вызвал описанный в статье кейс с нарушением согласованности (нарушением очередности доставки сообщений). Я встречал эту проблему в некоторых российских банках и брокерах, когда событие расходной операции успевает обработаться раньше, чем событие приходной операции, что вызывает превышение лимита технического овердрафта - все как в статье.
Конечно, тут речь идет уже о другой проблеме - выбор и достижение правильной модели согласованности:
- https://jepsen.io/consistency
В статье эта тема затронута, но не раскрыта.
Небольшую сложность в понимание статьи вносит тот факт, что в ней не делается четкого различия между Командой (когда отправитель осведомлен о получателе) и Событием. И не хватает взгляда с позиции достижения Low Coupling.
Но в целом, статья заслуживает внимания.
Кстати, по поводу моделей согласованности - одной из оптимальных и часто используемых моделей согласованности, которая позволяет достигнуть наибольшего уровня параллелизма при наименьших последствиях нарушения последовательности обработки, является Causal Consistency:
- https://t.me/emacsway_log/562
Vaughn Vernon тоже не обошел эту проблему стороной:
- https://t.me/emacsway_log/62
У меня по этой теме в свое время набралось материала на целую статью:
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/
#DDD #Microservices #DistributedSystems #SoftwareArchitecture
InfoQ
Nobody Needs Reliable Messaging
Marc de Graauw challenges the notion that transport-level reliability mechanisms like WS-ReliableMessaging are needed, showing how business-specific logic for in-order and exactly-once processing do the job much better with examples from Dutch Healthcare's…
Довольно неплохая библиотека от Nginx со свободным доступом:
https://www.nginx.com/resources/library/
#Microservices #SoftwareArchitecture #DistributedSystems
https://www.nginx.com/resources/library/
#Microservices #SoftwareArchitecture #DistributedSystems
F5, Inc.
Welcome to F5 NGINX
NIGINX is part of F5, and all previous NGINX.com links now redirect to content on F5.com. Don't worry, we still have all your needs covered to navigate to the pages you're looking for.
Systems.Education: Системный Анализ и Проектирование информационных систем: архитектура, интеграции, базы данных
Мы оформили информацию вебинара Елены Бенкен в виде краткой статьи https://systems.education/rest-api-postman
"REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков"
- https://habr.com/ru/post/590679/
-https://systems.education/what-is-rest
#SoftwareArchitecure #DistributedSystems #Integration
- https://habr.com/ru/post/590679/
-https://systems.education/what-is-rest
#SoftwareArchitecure #DistributedSystems #Integration
Хабр
REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков
Мы подготовили статью Андрея Буракова на основе его вебинара на нашем YouTube-канале: Проектирование и работа с REST-сервисами стали повседневными задачами для многих аналитиков. Однако мы часто...
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Один из наиболее частых вопросов - есть ли жизнь без Outbox pattern? Да, есть, и Outbox нужен далеко не всегда. В руководстве Microsoft https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/subscribe…
Process Manager (Orchestration-based Saga) implementation with Watermill (Golang)
- https://github.com/czeslavo/process-manager
- https://github.com/ThreeDotsLabs/watermill/issues/7#issuecomment-753450071
#DistributedSystems #EIP #EDA #DDD #Microservices #Golang #SoftwareArchitecture #SoftwareDesign
- https://github.com/czeslavo/process-manager
- https://github.com/ThreeDotsLabs/watermill/issues/7#issuecomment-753450071
#DistributedSystems #EIP #EDA #DDD #Microservices #Golang #SoftwareArchitecture #SoftwareDesign
GitHub
GitHub - czeslavo/process-manager: Exploration of CQRS process-manager concept.
Exploration of CQRS process-manager concept. . Contribute to czeslavo/process-manager development by creating an account on GitHub.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
А вот и "Version Vector" подоспел в "Patterns of Distributed Systems": - https://martinfowler.com/articles/patterns-of-distributed-systems/version-vector.html Судя по комментарию в правой колонке статьи, отдельной статьи по Version Clock не будет. Version…
Martin Fowler говорит о подготовке книги по распределенным паттернам:
https://youtu.be/0TwoubGSXpc
Thanks to @adzeitor
#DistributedSystems #SoftwareArchitecture #DDD #Microservices
https://youtu.be/0TwoubGSXpc
Thanks to @adzeitor
#DistributedSystems #SoftwareArchitecture #DDD #Microservices
YouTube
The Fundamentals Of Software Development | Martin Fowler In The Engineering Room Ep. 1
Welcome to the Engineering Room, wide-ranging conversations with thought-leaders from the software engineering industry. This is a new mini-series of additional content on the Continuous Delivery Channel.
In this first episode, Dave Farley chats with Martin…
In this first episode, Dave Farley chats with Martin…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
А вот и "Version Vector" подоспел в "Patterns of Distributed Systems": - https://martinfowler.com/articles/patterns-of-distributed-systems/version-vector.html Судя по комментарию в правой колонке статьи, отдельной статьи по Version Clock не будет. Version…
Что-то я упустил новые статьи в "Patterns of Distributed Systems":
Paxos:
- https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html
Two Phase Commit:
- https://martinfowler.com/articles/patterns-of-distributed-systems/two-phase-commit.html
И новые статьи в "Patterns of Legacy Displacement":
Legacy Mimic:
- https://martinfowler.com/articles/patterns-legacy-displacement/legacy-mimic.html
Critical Aggregator:
- https://martinfowler.com/articles/patterns-legacy-displacement/critical-aggregator.html
Replicated Log:
- https://martinfowler.com/articles/patterns-of-distributed-systems/replicated-log.html
Divert the Flow:
- https://martinfowler.com/articles/patterns-legacy-displacement/divert-the-flow.html
#DistributedSystems #SoftwareArchitecture
Paxos:
- https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html
Two Phase Commit:
- https://martinfowler.com/articles/patterns-of-distributed-systems/two-phase-commit.html
И новые статьи в "Patterns of Legacy Displacement":
Legacy Mimic:
- https://martinfowler.com/articles/patterns-legacy-displacement/legacy-mimic.html
Critical Aggregator:
- https://martinfowler.com/articles/patterns-legacy-displacement/critical-aggregator.html
Replicated Log:
- https://martinfowler.com/articles/patterns-of-distributed-systems/replicated-log.html
Divert the Flow:
- https://martinfowler.com/articles/patterns-legacy-displacement/divert-the-flow.html
#DistributedSystems #SoftwareArchitecture
martinfowler.com
Paxos
Use two consensus building phases to reach safe consensus even
when nodes disconnect
when nodes disconnect
👍5
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Сравнение брокеров сообщений - https://docs.nats.io/compare-nats #DistributedSystems #SoftwareArchitecture #Microservices #DDD
"Error Handling Patterns for Apache Kafka Applications" by Gerardo Villeda
- https://www.confluent.io/blog/error-handling-patterns-in-kafka/
Неплохая статья, которая затрагивает в т.ч. и проблему очередности доставки сообщений.
#DistributedSystems #SoftwareArchitecture #Microservices #DDD
- https://www.confluent.io/blog/error-handling-patterns-in-kafka/
Неплохая статья, которая затрагивает в т.ч. и проблему очередности доставки сообщений.
#DistributedSystems #SoftwareArchitecture #Microservices #DDD
Confluent
Error Handling Patterns in Kafka
From dead letter queues to related events processed out of order, here are 5 common issues in event streaming applications, and how to fix them with sequential retries.
👍7🔥2👎1
Две статьи о том, что проблема гонки сообщений в шине может решаться на уровне бизнес-логики. Одна из них - от Vaughn Vernon. Он даже видит в этом превосходство DDD.
1. "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts
2. "Nobody Needs Reliable Messaging" by Marc de Graauw
#DDD #Microservices #DistributedSystems
1. "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts
2. "Nobody Needs Reliable Messaging" by Marc de Graauw
#DDD #Microservices #DistributedSystems
InfoQ
Modeling Uncertainty with Reactive DDD
Vaughn Vernon has written several books on DDD and reactive messaging patterns, and has found that the nature of distributed systems means you must deal with uncertainty. How to respond to a missing message, or a message that is received twice, should be…
👍7🔥2
Forwarded from Russian Association of Software Architects (Ivan Zakrevsky)
SAGA - подборка ссылок из обсуждений чата канала:
🔷 Первоисточник по SAGA: "SAGAS" by Hector Garcia-Molina, Kenneth Salem
🔷 Перевод первоисточника по SAGA: "Гектор Гарсия-Молина и Кеннет Салем — «Саги»" / Михаил Ланкин
🔷 Applying the Saga Pattern • Caitie McCaffrey • GOTO 2015
🔷 Saga distributed transactions pattern
🔷 Process Manager Pattern
🔷 Compensating Transaction pattern
🔷 Пример реализации SAGA на Enterprise Integration Patterns (source code)
🔷 Пример реализации Process Manager от сообщества Microsoft (комментарий Greg Young). Альтернативы и обоснование.
🔷 Patterns and implementations for a banking cloud transformation
🔷 Несколько реализаций саг:
- https://axoniq.io
- https://eventuate.io/abouteventuatetram.html
- https://github.com/eclipse/microprofile-lra
- https://github.com/jbosstm/narayana/tree/master/rts/lra
🔷 Awesome workflow engines
🔷 "A long-running transaction model of workflow" by Quanzhou Hu; Jia Liu; Yi Zhuang; Yi Liu
🔷 "The CORBA Activity Service Framework for supporting extended transactions" by Iain Houston, M. C. Little, Ian Robinson, Santosh K. Shrivastava, Stuart M. Wheater
🔷 "What are long running processes?" by Bernd Rücker
🔷 Чем отличается SAGA от Process Manager:
- https://event-driven.io/en/saga_process_manager_distributed_transactions/
- https://stackoverflow.com/a/33652837
- https://blog.devarchive.net/2015/11/saga-vs-process-manager.html?m=1
🔷 "Eventually consistent" by Werner Vogels
🔷 "ACID properties of transactions"
🔷 "Atomicity :: Chapter 12. Berkeley DB Transactional Data Store Applications"
🔷 "Atomic - indivisible, not capable of being cut/divided into smaller pieces"
🔷 "Consistency Models"
🔷 интервью "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts, в котором V.Vernon предлагает использовать Process Manager Pattern для обработки процессов, охватывающих несколько агрегатов в условиях Eventual Consistency.
Посмотреть реализацию в исполнении V. Vernon, включая ProcessTimedOut (о чем часто спрашивают), можно здесь:
- Java
- .Net
🔷 "Camunda Platform 8 Docs :: BPMN coverage"
🔷 Eclipse Microprofile стандарт имеет понятие LRA - Long Running Application. это есть их интерпретация саг
🔷 Microprofile-compatible фреймворки а-ля micronaut.io
🔷 RedHat развивает референс имплементацию Microprofile в виде своего фреймворка quarkus.io
🔷 Red Hut Summit "Saga: The new era of transactions in a
microservices architecture" by Giovanni Marigi, Mauro Vocale. BOSTON, MA | MAY 7-9, 2019
🔷 Вот пример Camunda. их интерпретация и имплементация саг )). Там всё очень упрощено и декларативно.
🔷 Architecture standard определяет сагу в пункте 21.2.7. Ensuring Global Consistency with Saga Patterns
Спасибо, что развиваете отрасль с помощью нашего чата!
#DistributedSystems #Многоликий
🔷 Первоисточник по SAGA: "SAGAS" by Hector Garcia-Molina, Kenneth Salem
🔷 Перевод первоисточника по SAGA: "Гектор Гарсия-Молина и Кеннет Салем — «Саги»" / Михаил Ланкин
🔷 Applying the Saga Pattern • Caitie McCaffrey • GOTO 2015
🔷 Saga distributed transactions pattern
🔷 Process Manager Pattern
🔷 Compensating Transaction pattern
🔷 Пример реализации SAGA на Enterprise Integration Patterns (source code)
🔷 Пример реализации Process Manager от сообщества Microsoft (комментарий Greg Young). Альтернативы и обоснование.
🔷 Patterns and implementations for a banking cloud transformation
🔷 Несколько реализаций саг:
- https://axoniq.io
- https://eventuate.io/abouteventuatetram.html
- https://github.com/eclipse/microprofile-lra
- https://github.com/jbosstm/narayana/tree/master/rts/lra
🔷 Awesome workflow engines
🔷 "A long-running transaction model of workflow" by Quanzhou Hu; Jia Liu; Yi Zhuang; Yi Liu
🔷 "The CORBA Activity Service Framework for supporting extended transactions" by Iain Houston, M. C. Little, Ian Robinson, Santosh K. Shrivastava, Stuart M. Wheater
🔷 "What are long running processes?" by Bernd Rücker
🔷 Чем отличается SAGA от Process Manager:
- https://event-driven.io/en/saga_process_manager_distributed_transactions/
- https://stackoverflow.com/a/33652837
- https://blog.devarchive.net/2015/11/saga-vs-process-manager.html?m=1
🔷 "Eventually consistent" by Werner Vogels
🔷 "ACID properties of transactions"
🔷 "Atomicity :: Chapter 12. Berkeley DB Transactional Data Store Applications"
🔷 "Atomic - indivisible, not capable of being cut/divided into smaller pieces"
🔷 "Consistency Models"
🔷 интервью "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts, в котором V.Vernon предлагает использовать Process Manager Pattern для обработки процессов, охватывающих несколько агрегатов в условиях Eventual Consistency.
Посмотреть реализацию в исполнении V. Vernon, включая ProcessTimedOut (о чем часто спрашивают), можно здесь:
- Java
- .Net
🔷 "Camunda Platform 8 Docs :: BPMN coverage"
🔷 Eclipse Microprofile стандарт имеет понятие LRA - Long Running Application. это есть их интерпретация саг
🔷 Microprofile-compatible фреймворки а-ля micronaut.io
🔷 RedHat развивает референс имплементацию Microprofile в виде своего фреймворка quarkus.io
🔷 Red Hut Summit "Saga: The new era of transactions in a
microservices architecture" by Giovanni Marigi, Mauro Vocale. BOSTON, MA | MAY 7-9, 2019
🔷 Вот пример Camunda. их интерпретация и имплементация саг )). Там всё очень упрощено и декларативно.
🔷 Architecture standard определяет сагу в пункте 21.2.7. Ensuring Global Consistency with Saga Patterns
Спасибо, что развиваете отрасль с помощью нашего чата!
#DistributedSystems #Многоликий
Telegram
RASA Chat
Группа тг-канала объединения ИТ-архитекторов (@ru_arc)
Правила группы: https://t.me/ru_arc_chat/2036
По бизнес-вопросам (ИП, ООО, ВЭД):
@rasa_business
Практические кейсы:
@archicases
Предложить доклад для митапа: @ru_arc_meetup_bot
Правила группы: https://t.me/ru_arc_chat/2036
По бизнес-вопросам (ИП, ООО, ВЭД):
@rasa_business
Практические кейсы:
@archicases
Предложить доклад для митапа: @ru_arc_meetup_bot
👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Превосходный справочно-информационный ресурс по вопросам CRDT от Martin Kleppmann: - https://crdt.tech/ Source Code: - https://github.com/ept/crdt-website Кстати, тем, кто читает его книгу "Designing Data-Intensive Applications", было бы интересно знать…
Список решений для реализации CRDT / Offline-First от Martin Kleppmann:
- https://crdt.tech/implementations
#DistributedSystems #DDD #Microservices #CRDT
- https://crdt.tech/implementations
#DistributedSystems #DDD #Microservices #CRDT
Conflict-free Replicated Data Types
Code • Conflict-free Replicated Data Types
Resources and community around CRDT technology — papers, blog posts, code and more.
🔥3😐1
🔷 "Big Data is Dead" by Jordan Tigani
- https://motherduck.com/blog/big-data-is-dead/
#DistributedSystems
- https://motherduck.com/blog/big-data-is-dead/
#DistributedSystems
MotherDuck
Big Data is Dead - MotherDuck Blog
Big data is dead. Long live easy data.
🔥2😐2
Не призываю, но на безрыбье... Django + Transactional Outbox: https://medium.com/@antunesleo/ensuring-data-consistency-in-microservices-using-django-jaiminho-and-transaction-outbox-to-avoid-e9fbc21e2dcc
Исходный код: https://github.com/loadsmart/django-jaiminho
Параллельно подвернулась неплохая статейка "Event Sourcing vs. Change Data Capture" by Eric Murphy:
- https://debezium.io/blog/2020/02/10/event-sourcing-vs-cdc/
See also: https://github.com/juntossomosmais/django-outbox-pattern
#DistributedSystems
Исходный код: https://github.com/loadsmart/django-jaiminho
Параллельно подвернулась неплохая статейка "Event Sourcing vs. Change Data Capture" by Eric Murphy:
- https://debezium.io/blog/2020/02/10/event-sourcing-vs-cdc/
See also: https://github.com/juntossomosmais/django-outbox-pattern
#DistributedSystems
Medium
Ensuring Data Consistency in Microservices: Using Django-Jaiminho and Transaction Outbox to Avoid…
Dual writes anti-pattern occurs when a service writes to multiple sources and one write succeeds while the other fails, leading to…
👍2👀1
Статья уже трехлетней давности, но приводятся методика и средства тестирования - при необходимости можно актуализировать своими силами: "Benchmarking Apache Kafka, Apache Pulsar, and RabbitMQ: Which is the Fastest?"
- https://www.confluent.io/blog/kafka-fastest-messaging-system/
[UPDATE]: Отчеты посвежее, средства тестирования те же:
- "A Comparison of Messaging Platforms: Apache Pulsar vs. RabbitMQ vs. NATS JetStream" https://streamnative.io/blog/comparison-of-messaging-platforms-apache-pulsar-vs-rabbitmq-vs-nats-jetstream
"Apache Pulsar vs. Apache Kafka 2022 Benchmark"
- https://streamnative.io/blog/apache-pulsar-vs-apache-kafka-2022-benchmark
#DistributedSystems
- https://www.confluent.io/blog/kafka-fastest-messaging-system/
[UPDATE]: Отчеты посвежее, средства тестирования те же:
- "A Comparison of Messaging Platforms: Apache Pulsar vs. RabbitMQ vs. NATS JetStream" https://streamnative.io/blog/comparison-of-messaging-platforms-apache-pulsar-vs-rabbitmq-vs-nats-jetstream
"Apache Pulsar vs. Apache Kafka 2022 Benchmark"
- https://streamnative.io/blog/apache-pulsar-vs-apache-kafka-2022-benchmark
#DistributedSystems
Confluent
Benchmarking RabbitMQ vs Kafka vs Pulsar Performance
A complete benchmark of RabbitMQ, Kafka, and Pulsar to determine performance, throughput, and latency at scale. View the comparison results!
👍2❤1🔥1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Transactional все-таки активно используется. Как вы версионируете агрегат, если он state based, а не Event Sourced?
По результатам опроса большинство предпочитает инкрементировать версию Агрегата единожды на транзакцию, а не на Доменное Событие (на факт изменения состояния).
Хочу поделиться результатом своих двухдневных размышлений по этому поводу, которые вынудили меня изменить эту точку зрения:
- https://dckms.github.io/system-architecture/emacsway/it/ddd/tactical-design/repository/causal-consistency.html
А какие у вас соображения по этому поводу?
#DDD #DistributedSystems #Microservices #CausalConsistency
Хочу поделиться результатом своих двухдневных размышлений по этому поводу, которые вынудили меня изменить эту точку зрения:
- https://dckms.github.io/system-architecture/emacsway/it/ddd/tactical-design/repository/causal-consistency.html
А какие у вас соображения по этому поводу?
#DDD #DistributedSystems #Microservices #CausalConsistency
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Transactional все-таки активно используется. Как вы версионируете агрегат, если он state based, а не Event Sourced?
Одна версия на одну транзакцию, даже если событий Доменных Событий агрегата несколько. / По одной версии на каждое событие.
Одна версия на одну транзакцию, даже если событий Доменных Событий агрегата несколько. / По одной версии на каждое событие.
🔥2👍1