DDD Weekly: Issue #53

February 21, 2018

You are also opting in for interesting, DDD-related emails from buildplease.com

Functional Core - Part 2 [blog] Jeremie Chassaing. Part 1 here. The Functional Core approach is best suitable in parts of a system where the core part will be complex enough to be interesting to be separated from the infrastructure that runs it.

Adding Meaning to Primitive Types in fsharp [blog] Tamizh Vendan. In this blog post, we saw how to avoid some boilerplate code while creating domain types for primitives in fsharp. On a side note, by adding the static members + and Zero we made the Money type a Monoid. The List.sum and List.sumBy functions are designed to act on any Monoids and hence we solved the use cases with less code!

Serverless CQRS in Azure Part 1: Introduction, Commands & Event sourcing [blog] Rich James. Keen to explore the realms of what is possible with Azure’s Serverless technologies, I decided there was no better way than to attempt to tackle a complex, modern software pattern: Command Query Responsibly Segregation, otherwise known as CQRS (with event sourcing & materialized views thrown in for good measure).

The language of maths is not the language of your business [blog] Daniel Westheide. If you are serious about the ubiquitous language — and you have to be if you want to be serious about domain-driven design — strive to keep such abstractions to a minimum in your domain model. What you do outside of your domain model is a totally different story.

CQRS Documents by Greg Young [github] Keyvan Akbary. Greg Young created a fantastic PDF document on CQRS that has been around the internet for quite some time. PDF documents don’t not work well on mobile or tablet devices and they are hard to modify and sync. I thought it was a good idea to port the documents into an ebook, here is the result of it.

vlingo: Our Open Source Reactive Platform [blog] Vaughn Vernon. As I stated, some years ago I began an effort that was the formulation of my vision. Of course this vision involves Domain-Driven Design (DDD). I want the use of DDD to continue to increase. Note that DDD can be expressed in different ways, including as object models and as functional models. Expect that vlingo will support both.

Repository Tip - Encapsulate Query Logic [podcast] Steve Smith. The Repository design pattern is one of the most popular patterns in .NET development today. However, depending on its specific implementation, its benefits to the system’s design may vary. One thing to watch out for is query logic leaking out of the repository implementation.

On architecture, third post: Composing bounded contexts [blog] Bjørn Einar Bjartnes. Earlier I discussed how we identify bounded contexts. The example I used was implementing a system that only deals with the subdomain of desking the frontpage in a single bounded context. In this post I will discuss how we unite bounded contexts with HAL.

Legacy Evolution: Moving Quickly & Safely From Monolith To Microservices [whitepaper] Adaptech Solutions.