emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Часть 2. В рассмотренном выше варианте сам Store может хранить Доменную модель. Выглядеть это будет примерно так. 3. Есть и иной вариант, когда Command никаким образом не связана со Store и является отдельной надстройкой, а Store превращается, по сути, в…
Awesome списки для выбора библиотеки управления состоянием на стороне клиента:
https://github.com/tnfe/awesome-state
https://github.com/tnfe/awesome-state
GitHub
GitHub - tnfe/awesome-state: collection of state management lib
collection of state management lib. Contribute to tnfe/awesome-state development by creating an account on GitHub.
🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Awesome списки для выбора библиотеки управления состоянием на стороне клиента: https://github.com/tnfe/awesome-state
Прочитал статью "Angular Service Layers: Redux, RxJs and Ngrx Store - When to Use a Store And Why?"
В целом, статья неплохая. Кое-что я почерпнул. Правда, материал не настолько исчерпывающий по этой теме, как "Object-Oriented Software Construction" 2nd edition by Bertrand Meyer.
Причиной внедрения Flux в практику Facebook стала потребность в реал-тайм синхронизации состояний клиентов, и решение было найдено в виде однонаправленного потока изменений:
💬 "editing the same data by multiple concurrent actors"
Причина, по которой Redux синхронный, заключается в сложности организации Causal Consistency, когда события могут выстраиваться в случайный порядок.
Так же, как и авторы Dojo Store, автор статьи утверждает, что Action - это Команда, а не событие:
💬 "Redux looks like an event bus, but it's not. Actually, a Redux store is a combination of the Command and the Observable patterns. What we do with the store is, we send it a command object known as an action:"
Тем самым они подтверждают и мои выводы, которые я озвучил вчера в чате канала.
Кстати, путаницу между командами и событиями попытались прояснить еще и авторы NgXs.
Еще одним явным отличительным признаком Команды является единственность её получателя/исполнителя.
Важный момент - данные в Store названы "моделью" (это уже второй признак в пользу "первого варианта", т.е. п.2, озвученного здесь):
💬 "the user triggers an action, its gets dispatched to the stores which generate a new model and send it to the view."
Чего не хватило в статье, так это фундаментальности. Трудно объяснить достоинства Redux, обойдя стороной достоинства CQRS.
#CQRS #Frontend
В целом, статья неплохая. Кое-что я почерпнул. Правда, материал не настолько исчерпывающий по этой теме, как "Object-Oriented Software Construction" 2nd edition by Bertrand Meyer.
Причиной внедрения Flux в практику Facebook стала потребность в реал-тайм синхронизации состояний клиентов, и решение было найдено в виде однонаправленного потока изменений:
💬 "editing the same data by multiple concurrent actors"
Причина, по которой Redux синхронный, заключается в сложности организации Causal Consistency, когда события могут выстраиваться в случайный порядок.
Так же, как и авторы Dojo Store, автор статьи утверждает, что Action - это Команда, а не событие:
💬 "Redux looks like an event bus, but it's not. Actually, a Redux store is a combination of the Command and the Observable patterns. What we do with the store is, we send it a command object known as an action:"
Тем самым они подтверждают и мои выводы, которые я озвучил вчера в чате канала.
Кстати, путаницу между командами и событиями попытались прояснить еще и авторы NgXs.
Еще одним явным отличительным признаком Команды является единственность её получателя/исполнителя.
Важный момент - данные в Store названы "моделью" (это уже второй признак в пользу "первого варианта", т.е. п.2, озвученного здесь):
💬 "the user triggers an action, its gets dispatched to the stores which generate a new model and send it to the view."
Чего не хватило в статье, так это фундаментальности. Трудно объяснить достоинства Redux, обойдя стороной достоинства CQRS.
#CQRS #Frontend
Angular University
Angular NgRx Store and Redux - When to use a Store and Why?
This post is part of the ongoing Angular Architecture series, where we cover common design problems and solutions at the level of the View Layer and the Service layer. Here is the full series:
* View Layer Architecture - Smart Components vs Presentational…
* View Layer Architecture - Smart Components vs Presentational…
Наконец-то перенес в публичную часть блокнота заметку про отличие между Repository и Adapter (Ports & Adapters).
#DDD #Repository #HexagonalArchitectire
#DDD #Repository #HexagonalArchitectire
🔷 "Architecture vs. Design" by George Fairbanks. Интересные размышления.
#SoftwareArchitecture #SoftwareDesign
#SoftwareArchitecture #SoftwareDesign
Как вы обрабатываете Domain Events внутри Bounded Context?
Anonymous Poll
58%
in-process (transactional consistency)
49%
out-of-process (eventual consistency)
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Как вы обрабатываете Domain Events внутри Bounded Context?
Как вы обрабатываете Domain Events внутри Bounded Context? (уточненная версия)
Anonymous Poll
53%
in-process (transactional consistency)
29%
in-process (eventual consistency)
29%
out-of-process (eventual consistency)
👍1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Как вы обрабатываете Domain Events внутри Bounded Context? (уточненная версия)
Transactional все-таки активно используется. Как вы версионируете агрегат, если он state based, а не Event Sourced?
Anonymous Poll
67%
Одна версия на одну транзакцию, даже если событий Доменных Событий агрегата несколько.
33%
По одной версии на каждое событие.
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
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Большой-большой материал по «Data Engineering: ETL, ELT, Data Pipeline, Data Warehouse, Data Lakes, Data Marts»
https://ivan-shamaev.ru/data-engineering-etl-pipeline-data-warehouse-datalake/
https://ivan-shamaev.ru/data-engineering-etl-pipeline-data-warehouse-datalake/
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Boehm - 1991.pdf
1.3 MB
Нетленная классика, принципы и практики управления рисками от Barry Boehm
🔥4
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Заметки по распределенным системам.
Категории заметок
- Concepts
- Failure Detection
- Leader Election
- Replication Consistency
- Dissemination
- Anti-Entropy
- Gossip
- Distributed Transactions
- Consensus
- Paxos
- Message Queues
- Distributed Locks
- Clustering
- Cache
- Rate Limit
https://tangentyh.github.io/notes-of-tan/backend/distributed.html
Категории заметок
- Concepts
- Failure Detection
- Leader Election
- Replication Consistency
- Dissemination
- Anti-Entropy
- Gossip
- Distributed Transactions
- Consensus
- Paxos
- Message Queues
- Distributed Locks
- Clustering
- Cache
- Rate Limit
https://tangentyh.github.io/notes-of-tan/backend/distributed.html
tangentyh.github.io
Distributed System | Notes of Tan
Tan's notes.
👍8❤1
В следующем сообщении говорится о том, почему я для EventStorming использую Archi - чтобы с математической точностью вычислять наилучшую конфигурацию контуров микросервисов на основании принципа Low Coupling & High Cohesion:
Forwarded from Блог Сергея Баранова (Sergey Baranov)
A Metrics Suite for Microservices, EventStorming and DDD 👍
Measuring Coupling and Cohesion of Bounded Contexts on an EventStorming Domain Model
https://phillipjohnson.co.uk/a-metrics-suite-for-microservices-eventstorming-and-ddd
Measuring Coupling and Cohesion of Bounded Contexts on an EventStorming Domain Model
https://phillipjohnson.co.uk/a-metrics-suite-for-microservices-eventstorming-and-ddd
Forwarded from Архитектура ИТ-решений
Cranking out lines of code isn’t the most value-add activity for architects. But understanding system structures and hidden dependencies is, and debugging is all about that
Gregor Hohpe начинает 2023 год с разговора на нашу любимую тему: "Должен ли архитектор писать код" и приходит к неожиданному выводу о большей пользе для архитектора от участия в отладке: https://architectelevator.com/transformation/debugging-architect/
Gregor Hohpe начинает 2023 год с разговора на нашу любимую тему: "Должен ли архитектор писать код" и приходит к неожиданному выводу о большей пользе для архитектора от участия в отладке: https://architectelevator.com/transformation/debugging-architect/
The Architect Elevator
Debugging Architects
Whether architects must code or not has been much debated. Why not try debugging?
Forwarded from Архитектура ИТ-решений
Обещал найти ссылку о применимости шаблона описания архитектурных решений ADR для более широкого класса решений.
Делюсь: ADR = Any Decision Record? Architecture, Design and Beyond
Делюсь: ADR = Any Decision Record? Architecture, Design and Beyond
Olaf Zimmermann (ZIO, socadk, MAP author): portfolio, blog
ADR = Any Decision Record? Architecture, Design and Beyond
If architectural decision records are so useful to capture software design rationale, why not extend their scope: Can they log organizational and managerial decisions as well? How about everyday decisions?
👍1
Forwarded from Архитектура ИТ-решений
Fm7q8p7acAEUkiL.jpg
215.4 KB
Краткое графическое введение в c4model от IcePanel
https://blog.icepanel.io/2022/10/03/c4-model-for-system-architecture-design/
https://blog.icepanel.io/2022/10/03/c4-model-for-system-architecture-design/
🔥3❤1
Forwarded from Архитектура ИТ-решений
Долгое время единственным ISO-шным стандартом по архитектуре оставался ISO/IEC/IEEE 42010:2011 Systems and software engineering — Architecture denoscription. В 2019 году появились сразу два новых архитектурных стандарта 42020 и 42030. А в ноябре прошлого, 2022 года обновился и основной стандарт описания архитектуры.
Как именно, читайте здесь: https://mxsmirnov.com/changes-420x0/
Как именно, читайте здесь: https://mxsmirnov.com/changes-420x0/
❤🔥1
Forwarded from Блог Сергея Баранова (Sergey Baranov)
The Ultimate Guide To Software Architecture Documentation
This guide shows you how to write, structure, visualize and manage software architecture documentation in a lean way using appropriate documentation tools.
https://www.workingsoftware.dev/software-architecture-documentation-the-ultimate-guide/
This guide shows you how to write, structure, visualize and manage software architecture documentation in a lean way using appropriate documentation tools.
https://www.workingsoftware.dev/software-architecture-documentation-the-ultimate-guide/
workingsoftware.dev
The Ultimate Guide To Software Architecture Documentation
This guide shows you how to write, structure, visualize and manage software architecture documentation using appropriate documentation tools.
❤3
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Собрал структурированную базу знаний по микросервисам на основе своих статей и переводов.
http://agilemindset.ru/микросервисы/
http://agilemindset.ru/микросервисы/
👍2
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Вот такой вот прекрасный тест на ArchUnit, который объясняет суть слоя доменной логики. Должны быть зависимости только от самого себя и никаких внешних зависимостей.
🔥3