در پروژه ها با رویکرد DDD و معماری Microservice, باید از Event Sourcing هم استفاده کرد یا خیر؟
https://forcomprehension.com/2017/10/30/to-event-source-or-not/
https://forcomprehension.com/2017/10/30/to-event-source-or-not/
پیاده سازی مایکروسرویس ها با Kafka و KSQL
https://www.confluent.io/blog/building-a-microservices-ecosystem-with-kafka-streams-and-ksql/
https://www.confluent.io/blog/building-a-microservices-ecosystem-with-kafka-streams-and-ksql/
Confluent
Building a Microservices Ecosystem with Kafka Streams and KSQL
How to build fine grained, streaming microservices with the Apache Kafka Streams API and KSQL.
technology-radar-vol-17-en.pdf
2.2 MB
نسخه 17 سند Technology Radar از شرکت ThoughtWorks
امروزه تیم های توسعه ی نرم افزار تحت فشار زیادی جهت Deliver کردن هرچه سریعتر نرم افزار هستند. BDD یکی از موثرترین روش هایی است که به تیم ها جهت تولید نرم افزار با کیفیت و مورد نیاز مشتری، کمک می کند. بسیاری از تیم هایی که به سراغ BDD می روند، از اصول پایه ی BDD غافل شده و صرفا به استفاده از ابزار (مانند Specflow و یا JBehave) می پردازند. اما BDD صرفا استفاده از ابزارهای این چنینی نیست.
مطالعه مقاله زیر از اقای John Ferguson نویسنده ی کتاب BDD in Action به علاقه مندان BDD توصیه می شود.
عنوان مقاله : BDD چیزی فراتر از سینتکس Given/When/Then می باشد.
https://johnfergusonsmart.com/theres-bdd-givenwhenthen/
مطالعه مقاله زیر از اقای John Ferguson نویسنده ی کتاب BDD in Action به علاقه مندان BDD توصیه می شود.
عنوان مقاله : BDD چیزی فراتر از سینتکس Given/When/Then می باشد.
https://johnfergusonsmart.com/theres-bdd-givenwhenthen/
John Ferguson Smart
Broad brushes and narrow brushes: there's more to BDD than Given/When/Then - John Ferguson Smart
Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. But BDD isn’t simply about picking up a new tool.
Enterprise Software Development
reactive_microservices_the_evolution.pdf
اگر دوست دارید نرم افزارتان Response Time میلی ثانیه ای داشته و نزدیک به 100% UpTime داشته باشد، باید بدانید معماری های سنتی با یک دیتابیس SQL و روش های Thread-Per-Request به هیچ وجه با مایکروسرویس ها قابل قیاس نیستند.
اگر با مایکروسرویس ها و برنامه نویسی Reactive آشنایی ندارید، میتوانید کتابچه ی بالا را مطالعه کنید.
اگر با مایکروسرویس ها و برنامه نویسی Reactive آشنایی ندارید، میتوانید کتابچه ی بالا را مطالعه کنید.
مقاله اخیر آقای مارتین فاولر در مورد Integration Test ها
https://martinfowler.com/bliki/IntegrationTest.html
https://martinfowler.com/bliki/IntegrationTest.html
martinfowler.com
bliki: Integration Test
Integration tests see if independently developed units of software work correctly when connected. Traditionally broad they are now better narrowly scoped.
از آنجا که مایکروسرویس های شما به دیتا مدل های متفاوتی احتیاج دارند، برای پیاده سازی آنها باید از ذخیره سازی Polyglot استفاده کرد و یا از دیتابیس های Multi-Model ؟ مزایا، معایت و محدودیت های هر یک در مقاله زیر توضیح داده شده اند :
https://www.infoworld.com/article/3236291/database/how-to-choose-a-database-for-your-microservices.html
https://www.infoworld.com/article/3236291/database/how-to-choose-a-database-for-your-microservices.html
InfoWorld
How to choose a database for your microservices
Your microservices architecture requires multiple data models. Should you opt for polyglot persistence or a multi-model database?
Enterprise Software Development
https://byrslf.co/microservices-biology-and-evolution-17961800d009 مایکروسرویس ها، زیست شناسی و تکامل
حدود 3.8 میلیارد سال پیش، تک سلولی ها بر روی زمین شکل گرفتند. میلیون ها سال بعد، با به وجود آمدن موجودات چند سلولی تحول عظیمی در حیات کره زمین رخ داد. امروزه ما یک روند تکاملی در معماری نرم افزار را مشاهده می کنیم که مشابه تکامل حیات بیولوژیک بر روی زمین می باشد.
نویسنده در این مقاله به بررسی 5 ویژگی از هر دو دنیا پرداخته و به مسیر معماری نرم افزار در آینده می پردازد.
نویسنده در این مقاله به بررسی 5 ویژگی از هر دو دنیا پرداخته و به مسیر معماری نرم افزار در آینده می پردازد.
سه تکنیک ساده که باعث می شود مایکروسرویس های Resilient تر داشته باشید
http://blog.christianposta.com/microservices/3-easy-things-to-do-to-make-your-microservices-more-resilient/
http://blog.christianposta.com/microservices/3-easy-things-to-do-to-make-your-microservices-more-resilient/
Software Blog
3 Easy Things to Do to Make Your Microservices More Resilient
One of the advantages of building distributed systems as microservices is the ability of the system as a whole to withstand faults and unexpected failures of components, networks, compute resources, etc. These systems are resilient even in the face of faults.…
لیست کاملی از کتاب ها، فریم ورک ها و منابع مرتبط با بحث های DDD، CQRS و Event Sourcing
https://github.com/heynickc/awesome-ddd
https://github.com/heynickc/awesome-ddd
GitHub
GitHub - heynickc/awesome-ddd: A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event…
A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and Event Storming resources - heynickc/awesome-ddd
https://dzone.com/articles/saga-pattern-how-to-implement-business-transaction
در این مقاله به بررسی الگوی Saga جهت مدیریت Distributed Transaction ها پرداخته شده است. این الگو در مایکروسرویس ها بسیار رایج و کاربردی است.
در این مقاله به بررسی الگوی Saga جهت مدیریت Distributed Transaction ها پرداخته شده است. این الگو در مایکروسرویس ها بسیار رایج و کاربردی است.
DZone
Saga Pattern | How to Implement Business Transactions Using Microservices - Part I
Learn about the Saga Pattern for distributed transactions and how it can help businesses working with a microservices software architecture for transactions.