emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Сегодня ознакомился с книгой Vladik Khononov ( @vladik_kh ) "Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy" https://twitter.com/vladikk/status/1446472053557694464 Книга превзошла все мои ожидания. То, что он умеет доносить…
За сутки подняться с 10-го до 1-го места.
https://twitter.com/vladikk/status/1447462943226990600?t=yrXw9LxV0E8JzYGThhMvhQ&s=19
Все-таки я не ошибался, когда говорил, что книга станет топовой в архитектуре.
Эта книга должна была появиться. Уж слишком огромной и бессистемной стала область знаний по DDD. Должен был появиться скелет, на котором это все могло бы удержаться. Количественные изменения перешли в качественные. Кристализация многолетнего коллективного опыта наконец-то произошла.
#DDD #Microservices #SoftwareArchitecture #DistributedSystems #SoftwareDesign #CQRS #EventSourcing
https://twitter.com/vladikk/status/1447462943226990600?t=yrXw9LxV0E8JzYGThhMvhQ&s=19
Все-таки я не ошибался, когда говорил, что книга станет топовой в архитектуре.
Эта книга должна была появиться. Уж слишком огромной и бессистемной стала область знаний по DDD. Должен был появиться скелет, на котором это все могло бы удержаться. Количественные изменения перешли в качественные. Кристализация многолетнего коллективного опыта наконец-то произошла.
#DDD #Microservices #SoftwareArchitecture #DistributedSystems #SoftwareDesign #CQRS #EventSourcing
Twitter
Vladik Khononov
Wat... The 🐒 did it! Thank you all! 🥳#lddd #learningddd #dddesign
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
📝 "Happy that our paper on a move operation for CRDT trees has finally been accepted by IEEE TPDS! We've spent over two years trying to get this thing published, eventually successful on the sixth submission… https://t.co/sFQgNaF8cq " - Martin Kleppmann …
Весьма неплохое видео от Martin Kleppmann на тему CRDT с практическим кейсом.
https://youtu.be/Exr0iY_D-vw
В примере использована TypeScript библиотека "Compoventual"
- https://github.com/composablesys/collabs
#DistributedSystems #DDD #Microservices #CRDT
https://youtu.be/Exr0iY_D-vw
В примере использована TypeScript библиотека "Compoventual"
- https://github.com/composablesys/collabs
#DistributedSystems #DDD #Microservices #CRDT
YouTube
"Making Webapps Collaborative with Composable CRDTs" by Matthew Weidner and Heather Miller
Making a webapp collaborative is hard: you either need a custom server and lots of ad-hoc sync protocols, or you need to fit your app’s shared state into the restrictive data model of an existing client-side sync library. What if instead, you could directly…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Весьма неплохое видео от Martin Kleppmann на тему CRDT с практическим кейсом. https://youtu.be/Exr0iY_D-vw В примере использована TypeScript библиотека "Compoventual" - https://github.com/composablesys/collabs #DistributedSystems #DDD #Microservices #CRDT
Хм... заметил, что Automerge от Martin Kleppmann в этом канале еще не было...
Automerge is a library of data structures for building collaborative applications in JavaScript.
- https://github.com/automerge/automerge
На Rust:
- https://github.com/automerge/automerge-rs
На Python:
- https://github.com/automerge/automerge-py
На Swift:
- https://github.com/automerge/automerge-swift
На .NET:
- https://github.com/automerge/automerge-net
Тут примеры и другие полезные утилиты по теме:
- https://github.com/automerge
Демонстрационный клон Trello:
- https://github.com/automerge/trellis
- https://github.com/automerge/pushpin
#DistributedSystems #DDD #Microservices #CRDT
Automerge is a library of data structures for building collaborative applications in JavaScript.
- https://github.com/automerge/automerge
На Rust:
- https://github.com/automerge/automerge-rs
На Python:
- https://github.com/automerge/automerge-py
На Swift:
- https://github.com/automerge/automerge-swift
На .NET:
- https://github.com/automerge/automerge-net
Тут примеры и другие полезные утилиты по теме:
- https://github.com/automerge
Демонстрационный клон Trello:
- https://github.com/automerge/trellis
- https://github.com/automerge/pushpin
#DistributedSystems #DDD #Microservices #CRDT
GitHub
GitHub - automerge/automerge: A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged…
A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically. - GitHub - automerge/automerge: A JSON-like data structure (a CRDT) that c...
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
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.