emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. – Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
3.48K subscribers
119 photos
15 videos
22 files
1.14K links
Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, Extreme Programming, SDLC, Agile, etc.

Chat: https://news.1rj.ru/str/emacsway_chat

Persistence: https://dckms.github.io/system-architecture/
Download Telegram
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 #Многоликий
👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Greg Young пишет книгу "Versioning in an Event Sourced System": - https://leanpub.com/esversioning Можно прочитать online: https://leanpub.com/esversioning/read Готова на 90%, правда, последнее обновление было 2017-04-10 (если верить сайту). Посвящена популярному…
EventSourcing - что делать с сохраненными событиями, если изменилась структура агрегата? Ранее уже упоминалась книга by Greg Young ( https://news.1rj.ru/str/emacsway_log/547 ), и сегодня @bobko привел крайне интересный и качественный материал по этой теме:

"The Dark Side of Event Sourcing: Managing Data Conversion" by Michiel Overeem, Marten Spoor, and Slinger Jansen
- https://www.researchgate.net/publication/315637858_The_dark_side_of_event_sourcing_Managing_data_conversion

На эту статью ссылается Greg Young в своей книге, и дополняет список возможных решений.

#EventSourcing #DDD
👍4
Forwarded from Russian Association of Software Architects (Eugene Lukianov)
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее.
Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов".
Учередители:

- Баранов Сергей @sergey486
- Круглов Геннадий @GKruglov
- Лукьянов Евгений @elukianov
- Закревский Иван @emacsway

Почитать устав и ознакомиться с целями можно тут. По вопросам вступления обращаться в Joining Bot: @ru_arc_bot
👍12👏1
Russian Association of Software Architects
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее. Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов". Учередители:…
Казалось бы, чем можно меня удивить? Но материал такого уровня превосходит все мои ожидания. Когда в нашем Объединении ИТ-Архитекторов появляются такие ребята, то я начинаю понимать, что все нервы и недосыпания были не напрасны, и меня охватывает чувство гордости за наш коллектив.

- https://news.1rj.ru/str/ru_arc/131
- https://news.1rj.ru/str/ru_arc/132
- https://news.1rj.ru/str/ru_arc/133
- https://news.1rj.ru/str/ru_arc/134
- https://news.1rj.ru/str/ru_arc/135
- https://news.1rj.ru/str/ru_arc/136
- https://news.1rj.ru/str/ru_arc/137
- https://news.1rj.ru/str/ru_arc/138
👍7🔥5
Alex Xu написал пару крутых книжек (см. мой прошлый пост), и потом набрал команду, и начал, естесственно, курсы делать. Какие-то курсы (ну а как иначе?) платные. А что-то он выкладывает и за бесплатно, и в текстовом виде (я, например, всё время слежу за ним в linkedin, но он светится и на других площадках), и вот уже материалы Алекса стали появляться и в видео-формате: Byte Byte Go - это ютуб канал, где Alex Xu & co. стали выкладывать обучающие ролики, где мало того, что очень круто сам материал собран и формализован, так ещё там и анимация, и пр. — просто, контент самого лучшего качества по теме.
Пока что там не сильно много, они только совсем недавно начали. Но уже - смотреть обязательно.
Мой личный рейтинг:
1) System Design: Why is Kafka fast?
2) The Secret Sauce Behind NoSQL: LSM Tree
3) System Design: Why is single-threaded Redis so fast?
4) Consistent Hashing | Algorithms Every Developer Should Know For System Design
5) HTTP/1 to HTTP/2 to HTTP/3
6) FAANG System Design Interview: Design A Location Based Service (Yelp, Google Places)
Там что-то ещё есть, совсем базовое - а-ля What happens when you type a URL into your browser?.
Но я уже это не смотрел... А в общем, мои рекомендации господам и дамам архитекторам.
🔥15
Доброго времени суток, друзья.
Мне поступили вопросы от инженеров про список литературы, откуда начинать изучение ML и около-ML-ного домена.
И я как раз недавно смотрел, что свежего и хорошего вышло по теме.
—————
В последнее время OReilly стал очень годный контент выкладывать именно по MLOps.
У OReilly уже там было несколько классных книжек в 2020-2022 годах, которые бы я рекомендовал.
Но вот что совсем недавно вышло из понравившегося мне: Reliable Machine Learning: Applying SRE Principles to ML in Production.
You'll examine:
* What ML is: how it functions and what it relies on
* Conceptual frameworks for understanding how ML "loops" work
* Effective "productionization," and how it can be made easily monitorable, deployable, and operable
* Why ML systems make production troubleshooting more difficult, and how to get around them
* How ML, product, and production teams can communicate effectively
—————
Ещё, в чате канала мы с экспертами активно пообсуждали feature engineering. И вот, у Manning вышла хорошая книжка, которая даёт интро в эту область дата и мл инжиниринга: Feature Engineering Bookcamp.
What’s inside:
* Identify and implement feature transformations
* Build machine learning pipelines with unstructured data
* Quantify and minimize bias in ML pipelines
* Use feature stores to build real-time feature engineering pipelines
* Enhance existing pipelines by manipulating input data
—————
Мне кажется, что инженеру вот эти 2 книжки можно смело читать со старта, они дадут хорошее понимание, с какой стороны именно инженеру можно заходить в ML. Конечно же, надо чётко понимать, что нужна статистика и матан - чтобы уже сами алгоритмы и модельки понимать.
Но что из себя представляет сам домен, какой примерный жизненный цикл у продуктов из этого домена, и пр. - вот можно представление получить из этих книжек.
Экономика разработки программного обеспечения входит в число наиболее востребованных и популярных тем, о которых часто спрашивают.

Спасибо @GKruglov - благодаря ему в моем мини-курсе по этой теме появилась ссылка на соответствующую главу SWEBoK (не путать с SEBoK):
- "Software Engineering Body of Knowledge (SWEBOK) v.3" (на русском)
- "Chapter 12: Software Engineering Economics"
- "Software Engineering Body of Knowledge (SWEBOK) v.4 (draft)"
- "Chapter 15: Software Engineering Economics"

Справочник восторгает своим соотношением качества к количеству информации.

Скачивается бесплатно (после заполнения анкеты).

#SDLC
👍3🔥3
Forwarded from Russian Association of Software Architects (Ivan Zakrevsky)
О качестве кода - был у нас такой тематический месячник (можно посмотреть отсюда), в котором, правда, образовалась пауза. Кажется, пришло время вернуться к пропущенным вопросам.

Коротко напомню о том, что такое Agile SDLC-model - это итеративно-инкрементальная модель разработки, на которую наложен ряд филосовско-психологических принципов с целью снизить напряжение между техническими специалистами и представителями бизнеса.

Основой этой филосовско-психологической прослойки стал документ Bill of Rights, который является результатом глубокого аналитического труда Kent Beck в области психологии. Дело в том, что Kent Beck имел превосходную эрудированность в области психологии, философии и менеджмента, а морально-психологический климат в ИТ-индустрии того времени был, мягко говоря, напряженным. Кстати, мы этот документ уже упоминали.

Kent Beck выяснил, что напряжение являлось ни чем иным, как упреждающими защитным механизмом, спровоцированным страхами участников процесса разработки.

Идея Bill of Rights возникла на основе идеи Declaration of Independence (перевод):

💬 "Software development is risky. People involved have many fears of what may go wrong.

To develop effectively we must acknowledge these fears. Why do we need a software process? For the same reason that we need laws, governments, and taxes: fear.

The Declaration of Independence says:

That among these [rights] are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed.

Though the profundity of these words may distract us, consider the word secure. We institute governments because we are afraid of losing our rights. By the same token, we institute software processes because we are afraid."
-- "Planning Extreme Programming" by Kent Beck, Martin Fowler

Однако, вернемся к инкрементально-итеративной основе Agile-модели. Основная решаемая ею проблема - это разрешение неопределенности требований эмпирическим способом (т.е. опытным путем, широко известным как "метод научного тыка"), что повлекло смещение фокуса архитектуры с предвидения развития системы на её изменяемость, т.е. на такие методы разработки, которые позволили бы вести реализацию системы в условиях недостаточной полноты требований, максимизируя таким образом количество открытых решений, где их открытость обеспечивается низкой стоимостью их изменений. Разумеется, без фанатизма, сохраняя баланс.

В превосходной статье Craig Larman "Iterative and Incremental Development: A Brief History" говорится о том, что цикл PDSA известен еще с 1930 года, в 1957 году впервые была применена инкрементальная модель разработки, а в 1968 году - итеративная.

И вот теперь мы подошли к интересному вопросу, который рассмотрим далее. Почему при столь высокой практической востребованности, эмпирический способ разрешения неопределенности в виде итеративной модели впервые получил практическое применение лишь в 1968 году, а начал обретать массовость лишь в конце 1990-х годов?

#SDLC #Agile
👍3🤬2
🔷 "SAGA — эволюция и новые смыслы" / Геннадий Круглов @GKruglov:
- https://news.1rj.ru/str/ru_arc/165

Хочу оставить свою рецензию.

Что такое архитектурное решение? Его суть сводится к тому, чтобы бесконечно большое множество вариантов реализации сократить до одного единственного варианта. Иными словами, архитектура - это о том, как не надо делать. И здесь важно не многообразие вариантов само по себе, а те критерии, по которым их количество можно сократить.

Если не понимать решаемой проблемы, тогда никакое решение не будет правильным. Непонимание причинно-следственной связи называется в индустрии Карго-культом, а утрата семантических отношений - "Синдромом коллекционера".

Лучше всего драйверы описываются первоисточниками - уж они-то точно знают, какую проблему они решали. Они дают понимание релевантности этой проблемы решаемой проблеме.

Вот об этом доклад Гены.

Какую проблему решала SAGA? А транзакция? А атомарность? А SAGA - это транзакция? А SAGA атомарна? Почему?

Вот Sam Newman утверждает, что SAGA неатомарна, а Chris Richardson - наоборот, что она атомарна. Вероятно, кто-то из них не стал утруждаться исследованием вопроса, но кто же из них прав?

Гена зацепил довольно сложную тему, сложность понимания которой привело к такому бардаку вокруг этой темы. Каких только заблуждений по этой теме мне не приходилось слышать: и то, что SAGA - это stateless, в отличии от Process Manager, и то, что она обязана иметь компенсации, и т.д.

Была проделана колоссальная исследовательская работа по выявлению драйверов, причин, восстановлению исторического контекста и его актуализации. И много работы еще предстоит.

Материал презентации содержит сотни человеко-дней исследовательской работы, и стал возможным исключительно благодаря консолидации опыта специалистов сообщества. И мой вклад тоже отражен в этом докладе, но особенно ценным оказался вклад @beer_Roman .

Вот только малая часть агрегации информации по этому вопросу из чата @ru_arc_chat :
- https://news.1rj.ru/str/ru_arc/112

Особое значение этого доклада заключается не в его содержимом, а в том, что он заложил тот самый хребет, на котором может нарастать плоть исследовательской работы, суть которой сводится к конвергенции существующего зоопарка понятий.

Конечно, хотелось бы вместить больше в этот доклад, и есть что в нем улучшить.

Но этот доклад - только первый шаг, который удалось осуществить в условиях жесточайшего дефицита времени ресурсами одного человека.

Гена зацепил еще одну, не менее важную проблему - вопрос эволюции явления. Изменяется исторический контекст. Старые понятия утрачивают историческую актуальность. На их основе возникают новые понятия. Должны ли мы наделять старые термины новым пониманием? Вот в Agile начали возвращаться проектные практики, в силу изменения исторического контекста, - он перестал быть Agile? Вот SAGA стала решать проблемы распределенных систем, а не LLT - она перестала быть SAGA? А если она стала хореографической - она остается быть SAGA? Вот появились уровни зрелости CQRS - нужно ли изменить его определение, чтобы включить в него CQS?

Кажется, первый луч света в этом тумане неразберихи начал уже пробиваться.
🔥7👍4👎1🤔1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
C4-Model & Event Storming with ArchiMate, см. "Figure 13: Event Storming Model" of "Agile Architecture Modeling Using the ArchiMate® Language" - https://publications.opengroup.org/g20e - https://nicea.nic.in/sites/default/files/Agile_Architecture_Modellin…
EventStorming для документирования архитектуры нередко применяется даже в литературе, но теперь с этой целью вполне можно использовать PlantUML Activity Diagram (Beta):
- https://plantuml.com/en/activity-diagram-beta

Подробнее о нотации:
- https://www.uml-diagrams.org/activity-diagrams.html
- https://www.uml-diagrams.org/activity-diagrams-reference.html
- https://www.uml-diagrams.org/activity-diagrams-examples.html
- https://www.uml-diagrams.org/activity-diagrams-controls.html

P.S. Я уже говорил в сообществе, что предпочитаю для этих целей ArchiMate "C.1.10 Business Process Cooperation Viewpoint", нотация которого практически 1:1 совпадает с EventStorming, хотя в C4Model для подобных целей предусмотрена "Dynamic diagram".

C4Model + EventStorming удачно сочетаются в документировании Agile Architecture средствами Archi.

#EventStorming #UML #Documenting
🔥6👍5👌1
1. Организации устроены таким образом, чтобы избегать изменений структуры власти, статуса-кво между топ- и средним менеджментом, а также между средним-менеджментом и специалистами.

2. Первое следствие из п.1 – любая инициатива по изменению будет сведена к переопределению существующей либо к вводу новой терминологии, по сути означающей то же самое, что и до изменений, но позволяющей поддерживать статус-кво.

3. Второе следствие из п.1 – любая инициатива по изменению будет высмеяна как «пуристическая», «теоретическая», «излишне революционная» и «требующая приземления на реалии организации», что мешает началу работ по устранению существующих проблем и сохраняет статус-кво руководителей и специалистов.

4. Третье следствие из п.1 - если после внедрения изменений некоторые менеджеры и специалисты не нашли себе места, то они становятся “коучами/тренерами“ в рамках этих изменений, часто усиливая влияние п.2 и п.3.

5. Культура определяется структурой (следует за ней).

- https://less.works/ru/less/structure
👍6🤔6🔥4👎1
Forwarded from Dmitry Novikov
Illustrated Essential Kanban Condensed Notebook
https://kanban.university/illustrated-notebook/

Очень удачная брошюра в картинках, кажется гораздо лучше подходит для первого знакомства с методом, чем "Канбан гайд". Задизайнили польские ребята.
👍5🤔1
Куда я пропал?

1. Произошли кое-какие изменения личного характера, в результате чего пришлось поменять место работы.

2. Мне всегда нравилось больше создавать команды, нежели системы. Признаюсь, что в тарелке архитектора я чувствовал себя не совсем уютно. По этой причине, имея на руках оффер на позицию архитектора и оффер на позицию CTO, я выбрал второе.

Новая должность требует отдачи, и свободного времени почти не остается.

Сейчас занимаюсь формированием команд и подтягиваю лучших специалистов из круга друзей и знакомых. Но этого недостаточно. Нужны аналитики, архитекторы, продакты, руководители проектов, программисты, тестировщики.

Сегодня очень нужен грамотный тестировщик, со знанием средст автоматизации e2e, CDC, out-of-process component tests (и средств изоляции - Mountebank, Wiremock), ATDD и BDD тестов. Желателен опыт в IoT.

Обращайтесь в личку: @emacsway

Потребность в кадрах постоянная, т.к. количество проектов постоянно растет. Только в этом году нужно запустить как минимум 12 проектов, что означает быстрый карьерный рост, т.к. будем выстраивать уровни управления Program Management и Portfolio Management. На среднесрочном горизонте просматривается около 90 проектов.

[UPDATE]: Москва, возможна удаленная работа.

[UPDATE2]: Канал сохранит свою тематику. Скоро вернусь к публично-общественной деятельности. Работа над Reference Application будет продолжена.
👍21🔥4🎉2🤣2👏1😢1
Forwarded from Russian Association of Software Architects (Gennadiy Kruglov)
chatGPT наделал немало шума и вызвал волну хайпа. Инженерам не помешает понимать, как эта тема работает. А может даже и что-то "сделать" самим.

В этом посте набор базовых статей для Quick Start-а по BigScience Large Open-science Open-access Multilingual Language Model (Bloom). На этой "штуке"" можно создать свой LLM (аналог chatGPT).

Отсюда можно начать: https://huggingface.co/bigscience/bloom

Вот отличная статья про устройство (включая архитектуру) Bloom: «BLOOM: A 176B-Parameter Open-Access Multilingual
Language Model» https://arxiv.org/pdf/2211.05100.pdf

Вот крайне полезная статья для понимание возможностей, ограничений и границ применимости LLM: «Understanding the Capabilities, Limitations, and Societal Impact of Large Language Models» https://arxiv.org/pdf/2102.02503.pdf

Вот здесь немного на русском: https://habr.com/ru/company/first/blog/680750/
👍7
Forwarded from Roman
конкурент ChatGPT от Google - LaMDA: https://blog.google/technology/ai/lamda
————————
LaMDA’s conversational skills have been years in the making. Like many recent language models, including BERT and GPT-3, it’s built on Transformer, a neural network architecture that Google Research invented and open-sourced in 2017. That architecture produces a model that can be trained to read many words (a sentence or paragraph, for example), pay attention to how those words relate to one another and then predict what words it thinks will come next.
————————
оказывается, Google заоупенсорсил нейронку Transformer в 2017, а OpenAI её доработал )). и стал конкурентом гуглу (в конкретной нише) )).
————————
супер респект гуглу. я его за это уважаю. он двигает оупенсорс, и тем самым развивает всю индустрию. пофик даже, что сам себе конкурентов рожает. точно, достойно уважения.
————————
(не относится к делу)
IBM, кстати, такой же - серый кардинал всей индустрии и всего прогресса, который тут происходит. их несколько - таких кардиналов.
————————
(ну и, возвращаясь к гуглу)
Google ещё, тоже, вкидывает в Deepmind Flamingo - наблюдает за "успехами". и потом будет смотреть: "что и как".
в Hadoop такой подход назывался - Speculative Execution. а у дедушки Фаулера - Sacrificial Architecture )).
————————
ну и итог:
у каждого крутого вендора есть свой аналог. у гугла - speculative execution (sacrificial architecture): BERT, Transformer-XL, LaMDA, Deepmind Flamingo.
👍2🤔2
Основные архитектуры нейронных сеток - очень коротко и наглядно. Кому интересно дальше, то дальше читать вики (по всякому машинному обучению вики хорошо собрана - просто вводите название нейронки, и будет информация). Но именно по этой картинке, вот расшифровка. А если вы хотите познакомиться с нейронками с нуля и (относительно) просто, то вот отличный Quick Start по теме.
🔥10😐1
💬 Однажды Петька спросил у Василия Ивановича: В чём разница между идеологией, логикой и философией?

— Видишь, Петька, вон идут чистый и грязный. Кто из них пойдёт в баню?

— Ну, грязный.

— Нет, Петька. У грязного идеология быть грязным, а у чистого — быть чистым. Грязный в баню не пойдёт. Чистый пойдёт в баню.

— А логика?

— Видишь они уже поближе — чистый и грязный. Кто из них пойдёт в баню?

— Ну, чистый.

— Зачем же чистому идти в баню — он и так чистый. Грязный пойдёт в баню.

— А философия?

— Вот они уже подошли — чистый и грязный. Кто из них пойдёт в баню?

— Ну, грязный … нет чистый … нет грязный… не знаю что и думать, Василий Иванович.

— Вот это и есть философия.

Обратите внимание на то, что Петька, столкнувшись с трудностью в решении, кто пойдёт в баню, переходит от чистого и грязного к самому мышлению — «не знаю что и думать». Именно мышление не о чистом и грязном, а о самом мышлении (о чистом и грязном), Василий Иванович охарактеризовал как философию. Вслед за Василием Ивановичем, мы зададим сущность философии как мышление о мышлении о мире.

— Виталий Яковлевич Дубровский:
Введение в общую теорию деятельности. Лекция 1. Введение в системо-деятельностный подход

https://gtmarket.ru/library/articles/6554/6555
👍16🤔7😁3😐1