Temporal Modelling
by Mathias Verraes
Distributed systems are all about time. Traditional modeling styles, focused on things and structures, are not the primary way anymore to build modern systems that handle complexity well. Entity-centric designs tend to have an uneasy relation with events happening over time. The actual business processes, the heart of how organisations operate, end up hidden in the many calls between services.
Temporal Modelling is the cure: build models and systems that make events and processes the first class building blocks of a domain model. In this talk, Mathias is going to look at how reasoning with time helps us better understand how to build our software.
Watch the talk🎬 👇:
https://www.youtube.com/watch?v=vFEEgtOFYBA
by Mathias Verraes
Distributed systems are all about time. Traditional modeling styles, focused on things and structures, are not the primary way anymore to build modern systems that handle complexity well. Entity-centric designs tend to have an uneasy relation with events happening over time. The actual business processes, the heart of how organisations operate, end up hidden in the many calls between services.
Temporal Modelling is the cure: build models and systems that make events and processes the first class building blocks of a domain model. In this talk, Mathias is going to look at how reasoning with time helps us better understand how to build our software.
Watch the talk🎬 👇:
https://www.youtube.com/watch?v=vFEEgtOFYBA
YouTube
Mathias Verraes - Temporal Modelling
Distributed systems are all about time. Traditional modeling styles, focused on things and structures, are not the primary way anymore to build modern systems that handle complexity well. Entity-centric designs tend to have an uneasy relation with events…
🙏1
How to debug large, distributed systems: Antithesis
An introduction on Antithesis-a testing and debugging tool
https://newsletter.pragmaticengineer.com/p/antithesis
An introduction on Antithesis-a testing and debugging tool
Antithesis autonomously searches your software for problems, so your developers can spend less time writing and maintaining tests. Our powerful debugging tools make fixing the bugs we find much faster as well. This means your team can spend more of their time improving your software, and less of their time testing it.
https://newsletter.pragmaticengineer.com/p/antithesis
Pragmaticengineer
How to debug large, distributed systems: Antithesis
A brief history of debugging, why debugging large systems is different, and how the “multiverse debugger” built by Antithesis attempts to take on this challenging problem space
The Mirroring Principle and Organization Structure
Read the article 📝⤵️
https://masoudbahrami.medium.com/the-mirroring-principle-and-organization-structure-4520734d4c87
The adage “as above, so below” finds a curious parallel in the realm of organizational structure and system design. The Mirroring Principle, often intertwined with Conway’s Law, posits that the structure of an organization directly influences the structure of the systems it produces.
Read the article 📝⤵️
https://masoudbahrami.medium.com/the-mirroring-principle-and-organization-structure-4520734d4c87
Medium
The Mirroring Principle and Organization Structure
The adage “as above, so below” finds a curious parallel in the realm of organizational structure and system design. The Mirroring…
👍2
Forwarded from انجمن DDD ایران
انجمن DDD ایران با افتخار اعلام میکند که در راستای گسترش تعاملات علمی در حوزه مهندسی نرمافزار برای ایرانیان و فارسیزبانان، با برگزاری یک رویداد آنلاین در رویداد جهانی 2024 Global Day of DDD مشارکت خواهد داشت.
رویداد Global Day of DDD که توسط جامعه مجازی Virtual Domain-driven design سازماندهی میشود، شامل یک رویداد آنلاین اصلی و مجموعهای از رویدادهای محلی (Local) است که توسط جوامع DDD در کشورهای مختلف به طور همزمان و در یک بازه 16 ساعته برگزار میشود. انجمن DDD ایران افتخار دارد که در این رویداد جهانی مشارکت کند و با برگزاری یک رویداد آنلاین، فضایی برای تعامل و تبادل نظر علاقهمندان ایرانی فراهم آورد.
🔹 اطلاعات رویداد
▪️ تاریخ : پنجشنبه 1 آذر ۱۴۰۳
▪️ زمان: از ساعت ۹ الی ۲۲
▪️ قالب برگزاری: آنلاین
شرکت در این رویداد برای تمامی علاقهمندان رایگان است.
لینک ثبت نام:
https://evand.com/events/global-day-of-ddd-6256241
رویداد Global Day of DDD که توسط جامعه مجازی Virtual Domain-driven design سازماندهی میشود، شامل یک رویداد آنلاین اصلی و مجموعهای از رویدادهای محلی (Local) است که توسط جوامع DDD در کشورهای مختلف به طور همزمان و در یک بازه 16 ساعته برگزار میشود. انجمن DDD ایران افتخار دارد که در این رویداد جهانی مشارکت کند و با برگزاری یک رویداد آنلاین، فضایی برای تعامل و تبادل نظر علاقهمندان ایرانی فراهم آورد.
🔹 اطلاعات رویداد
▪️ تاریخ : پنجشنبه 1 آذر ۱۴۰۳
▪️ زمان: از ساعت ۹ الی ۲۲
▪️ قالب برگزاری: آنلاین
شرکت در این رویداد برای تمامی علاقهمندان رایگان است.
لینک ثبت نام:
https://evand.com/events/global-day-of-ddd-6256241
❤5👍2
Learn Hexagonal Architecture (aka Ports and Adapters) from It's Creator
Learn from it’s creator the rules and structure of the “Hexagonal”, more correctly called the Ports & Adapters architecture. In this lecture, Dr. Cockburn will describe why he created it, its benefits and also its costs, the UML description, and also some sample code. As an extra challenge, he will invite you to write your first Ports & Adapters application in your favorite language /during/ the talk!
Outline of the lecture:
- Challenge to write a small application during the lecture
- Short form what the code looks like
- Costs, benefits, history: why was it needed
- Viewing your application as a component
- Development sequence
- Examples in Ruby & Java with needed terminology
- How to set up the folders
- The various ways to set up the architecture
- Why is it called /Hexagonal/?
- Summary, checking in with people who accepted the challenge
https://www.youtube.com/watch?v=k0ykTxw7s0Y
A more concise nick name for Hexagonal Architecture as Alistair said is: Ports and Maybe Adapters!
Learn from it’s creator the rules and structure of the “Hexagonal”, more correctly called the Ports & Adapters architecture. In this lecture, Dr. Cockburn will describe why he created it, its benefits and also its costs, the UML description, and also some sample code. As an extra challenge, he will invite you to write your first Ports & Adapters application in your favorite language /during/ the talk!
Outline of the lecture:
- Challenge to write a small application during the lecture
- Short form what the code looks like
- Costs, benefits, history: why was it needed
- Viewing your application as a component
- Development sequence
- Examples in Ruby & Java with needed terminology
- How to set up the folders
- The various ways to set up the architecture
- Why is it called /Hexagonal/?
- Summary, checking in with people who accepted the challenge
https://www.youtube.com/watch?v=k0ykTxw7s0Y
YouTube
Hexagonal Architecture (Alistair Cockburn)
Learn from it’s creator the rules and structure of the “Hexagonal”, more correctly called the Ports & Adapters architecture. In this lecture, Dr. Cockburn will describe why he created it, its benefits and also its costs, the UML description, and also some…
📣 اطلاعیه برگزاری کارگاه Exploratory Domain Discovery
انجمن DDD ایران در نظر دارد کارگاه Exploratory Domain Discovery را به زودی برگزار کند. در صورتی که تمایل دارید در این کارگاه شرکت کنید، لطفا از طریق لینک زیر فرم پیشثبتنام اولیه را تکمیل بفرمایید.
کارگاه بصورت حضوری و در تهران برگزار میشود. ولی در صورتی که عزیزان بیشتری امکان حضور نداشته باشند بصورت آنلاین نیز ممکن است برگزار بشود.
🔵 مربی کارگاه: مسعود بهرامی
🔵 برگزار کننده: انجمن DDD ایران
🔵 مکان برگزاری: بصورت حضوری در شهر تهران
⭕️لینک پیش ثبتنام:
https://lnkd.in/gpmTf6J8
انجمن DDD ایران در نظر دارد کارگاه Exploratory Domain Discovery را به زودی برگزار کند. در صورتی که تمایل دارید در این کارگاه شرکت کنید، لطفا از طریق لینک زیر فرم پیشثبتنام اولیه را تکمیل بفرمایید.
کارگاه بصورت حضوری و در تهران برگزار میشود. ولی در صورتی که عزیزان بیشتری امکان حضور نداشته باشند بصورت آنلاین نیز ممکن است برگزار بشود.
🔵 مربی کارگاه: مسعود بهرامی
🔵 برگزار کننده: انجمن DDD ایران
🔵 مکان برگزاری: بصورت حضوری در شهر تهران
⭕️لینک پیش ثبتنام:
https://lnkd.in/gpmTf6J8
👍2
An informative and must-be-viewed presentation by Kent Beck on coach, coaching, and stuff like that
https://www.youtube.com/watch?v=LHgeNKGhZnE
https://www.youtube.com/watch?v=LHgeNKGhZnE
YouTube
What I Learned About Coaching in the Back of an Ambulance - Kent Beck
In this insightful kenote, prominent software engineer Kent Beck shares his unique journey from suffering a medical emergency that left him unable to speak, to redefining his coaching technique. Beck discusses the transformation he underwent, moving away…
👍2
چالش شماره 16 DDD Plus📣
چالش این هفته، شما رو به سمت مدلسازی یک سیستم رزرواسیون سفر با تمرکز بر نیازهای خاص یک شرکت (بانک) سوق میدهد. این چالش، درک عمیقی از مفاهیم کلیدی DDD مانند Bounded Context، Entities، Aggregates، و Value Objects را میطلبد.
چالش را بصورت کامل در زیر میتوانید مشاهده و دنبال کنید:
لینک به چالش شماره 16: 👇
https://domaindrivendesign.ir/ddd-plus-16/
💬گروه بحث و تبادل نظر در مورد این چالش: 👇
https://t.iss.one/DomainDrivenDesignGroup
هشتگ:
#DDDP | #DDD_Plus | #dddp16
چالش این هفته، شما رو به سمت مدلسازی یک سیستم رزرواسیون سفر با تمرکز بر نیازهای خاص یک شرکت (بانک) سوق میدهد. این چالش، درک عمیقی از مفاهیم کلیدی DDD مانند Bounded Context، Entities، Aggregates، و Value Objects را میطلبد.
چالش را بصورت کامل در زیر میتوانید مشاهده و دنبال کنید:
لینک به چالش شماره 16: 👇
https://domaindrivendesign.ir/ddd-plus-16/
💬گروه بحث و تبادل نظر در مورد این چالش: 👇
https://t.iss.one/DomainDrivenDesignGroup
هشتگ:
#DDDP | #DDD_Plus | #dddp16
❤3
Forwarded from Masoud Bahrami
The Dance Between Authors and Audiences
When audiences engage with a story, they're looking for the main point or message. To guide readers towards this understanding, authors often build suspense by starting with context and revealing the main point later.
Every software has a story. The story is the domain of that software. So every software or every domain has a main point, covered by a vast majority of information serving as its context.
As software developers, We are the authors of the story not the audiences. So it is crucial to start with the main point and provide and design the context based on the main idea.
As software developers, we're not simply reading a story; we're writing it. It's essential to begin with the core purpose of the software and then design the features and functionalities to support that purpose.
When audiences engage with a story, they're looking for the main point or message. To guide readers towards this understanding, authors often build suspense by starting with context and revealing the main point later.
Every software has a story. The story is the domain of that software. So every software or every domain has a main point, covered by a vast majority of information serving as its context.
As software developers, We are the authors of the story not the audiences. So it is crucial to start with the main point and provide and design the context based on the main idea.
As software developers, we're not simply reading a story; we're writing it. It's essential to begin with the core purpose of the software and then design the features and functionalities to support that purpose.
❤7
Forwarded from Masoud Bahrami
Obviously!
Understanding that my understanding might be wrong is essential.
Understanding that my understanding might be wrong is essential.
👍4
Forwarded from انجمن DDD ایران
🔵 اطلاعیه برگزاری کارگاه آموزشی حضوری Exploratory Domain Discovery
انجمن DDD ایران، کارگاه آموزشی Exploratory Domain Discovery را در تاریخهای ششم و هفتم دی ماه سال ۱۴۰۳ برگزار خواهد کرد.
🔵 مدرس: مسعود بهرامی
🔵 تاریخ برگزاری: 6 و 7 دیماه 1403 (پنجشنبه و جمعه)
🔵 ساعت: 9:30 صبح تا 17:00
🔵 مکان: شرکت آسان پرداخت پرشین
🔶 این کارگاه برای مدیران محصول، تحلیلگران کسبوکار، توسعهدهندگان نرمافزار و علاقهمندان به حوزه مدلسازی و طراحی سیستمها مناسب است.
🔴 کارگاه آنلاین نیز به زودی اطلاع رسانی خواهد شد.
برای کسب اطلاعات بیشتر با @masodbahrami تماس بگیرید.
انجمن DDD ایران، کارگاه آموزشی Exploratory Domain Discovery را در تاریخهای ششم و هفتم دی ماه سال ۱۴۰۳ برگزار خواهد کرد.
🔵 مدرس: مسعود بهرامی
🔵 تاریخ برگزاری: 6 و 7 دیماه 1403 (پنجشنبه و جمعه)
🔵 ساعت: 9:30 صبح تا 17:00
🔵 مکان: شرکت آسان پرداخت پرشین
🔶 این کارگاه برای مدیران محصول، تحلیلگران کسبوکار، توسعهدهندگان نرمافزار و علاقهمندان به حوزه مدلسازی و طراحی سیستمها مناسب است.
رویکرد Exploratory Domain Discovery یک رویکرد Collaborative Modelling and Designing است که توسط مسعود بهرامی طراحی شده است. با کمک EDD، میتوانید درک عمیقتری از نیازهای کسبوکار خود پیدا کرده و مدلهای دقیقتری برای حل فضای مسئلههای پیچیده ایجاد کنید.
🔴 کارگاه آنلاین نیز به زودی اطلاع رسانی خواهد شد.
برای کسب اطلاعات بیشتر با @masodbahrami تماس بگیرید.
❤3
Forwarded from انجمن DDD ایران
🔵اولین جلسات رسمی از کارگاه Exploratory Domain Discovery با استقبال خوبِ نزدیک به ۶۰ نفر، پنجشنبه و جمعه به میزبانی مجموعه آسان پرداخت پرشین برگزار شد. Exploratory Domain Discovery یک رویکرد Collaborative Modelling است که توسط مسعود بهرامی معرفی شده، و این اولین باری بود که بدین شکل مدون و رسمی ارائه میشد.
این کارگاه فرصتی مناسب برای شرکت کنندگان شامل برنامه نویسان و تحلیلگران و مدیران محصول بود تا با مفاهیم و تکنیکهای EDD آشنا بشن. حضور پرشور نزدیک به ۶۰ شرکتکننده نشون داد که این موضوع چقدر برای جامعه تخصصی مهمه و به ما انگیزه داد که این کارگاهها را بیشتر و بهتر برگزار کنیم.
نکتهی ویژهای که باید بهش اشاره کنیم، تقدیم این کارگاه به دو بانوی دانشمند برجسته و الهامبخش بود. کارگاه روز پنجشنبه رو به یاد و خاطرهی ارزشمند رزالیند فرانکلین، شیمیدان برجستهای که نقش حیاتی در کشف ساختار DNA داشت، و کارگاه روز جمعه رو به مریم میرزاخانی، ریاضیدان نابغه و اولین زن برندهی مدال فیلدز، تقدیم کردیم.
🟡کارگاه بعدی نیز به زودی اعلام رسانی خواهد شد.
🔴به زودی گزارش کاملی از هر دو روز منتشر میکنیم.
@DDD_IRAN
این کارگاه فرصتی مناسب برای شرکت کنندگان شامل برنامه نویسان و تحلیلگران و مدیران محصول بود تا با مفاهیم و تکنیکهای EDD آشنا بشن. حضور پرشور نزدیک به ۶۰ شرکتکننده نشون داد که این موضوع چقدر برای جامعه تخصصی مهمه و به ما انگیزه داد که این کارگاهها را بیشتر و بهتر برگزار کنیم.
نکتهی ویژهای که باید بهش اشاره کنیم، تقدیم این کارگاه به دو بانوی دانشمند برجسته و الهامبخش بود. کارگاه روز پنجشنبه رو به یاد و خاطرهی ارزشمند رزالیند فرانکلین، شیمیدان برجستهای که نقش حیاتی در کشف ساختار DNA داشت، و کارگاه روز جمعه رو به مریم میرزاخانی، ریاضیدان نابغه و اولین زن برندهی مدال فیلدز، تقدیم کردیم.
🟡کارگاه بعدی نیز به زودی اعلام رسانی خواهد شد.
🔴به زودی گزارش کاملی از هر دو روز منتشر میکنیم.
@DDD_IRAN
❤4👍2🙏1
📖 آموزش Event Sourcing | بخش دوازدهم
💡مقدمهای بر الگوی Inbox-Outbox
در شماره دوازدهم از سری آموزشهای ایونتسورسینگ به معرفی الگوی Inbox-Outbox پرداختم:
https://domaindrivendesign.ir/event-sourcing-12-inbox-outbox-pattern-intro/
EventSourcing | Part 12
هشتگ:
#EventSourcing #ایونت_سورسینگ #آموزش_event_sourcing
@DomainDrivenDesign_ir
💡مقدمهای بر الگوی Inbox-Outbox
الگوی Inbox-Outbox به توسعهدهندگان یک سرویس کمک میکند تا بتوانند eventها را به صورت قابل اطمینان به دنیای بیرون از سرویس خود ارسال کنند. به بیان دیگر مهمترین مزیت و البته دلیل وجودی الگوی Inbox-Outbox تضمین at-least-once-delivery است. Inbox-Outbox الگویی است که برای مدیریت ارتباطات بین سرویسها در معماری مبتنی بر Event Sourcing به کار میرود.
در این الگو، هر سرویس یک صندوق ورودی (Inbox) و یک صندوق خروجی (Outbox) دارد. پیاده سازی این صندوقها میتواند به طرق مختلفی انجام شود. هر سرویس رویدادهایی قصد دارد به دنیای بیرون مخابره کند را ابتدا درون صندوق خروجی(outbox) خود قرار میدهد. این صندوق غالبا بصورت یک صف(Queue) ساده بدون اولویت پیادهسازی میشود. همچنین رویدادهایی که هر سرویس به آنها علاقمند است نیز درون صندوق ورودی آن سرویس نگهداری میشود. این صندوق هم بصورت پیشفرض یک صف(Queue) ساده بدون اولویت پیادهسازی است.
در شماره دوازدهم از سری آموزشهای ایونتسورسینگ به معرفی الگوی Inbox-Outbox پرداختم:
https://domaindrivendesign.ir/event-sourcing-12-inbox-outbox-pattern-intro/
EventSourcing | Part 12
هشتگ:
#EventSourcing #ایونت_سورسینگ #آموزش_event_sourcing
@DomainDrivenDesign_ir
مکتبخانه DDD
آموزش Event Sourcing قسمت 12 | مقدمهای بر الگوی Inbox-Outbox | مکتبخانه DDD
در بخش دوازدهم از سری آموزشهای event sourcing به معرفی الگوی Inbox-Outbox پرداختیم. این الگو در سیستمهای توزیع شده جهت اطمینان از دریافت پیامها توسط طرف مقابل نقش اساسیای را بازی میکند...
❤4👍2