DDD Weekly: Issue #36

May 11, 2017

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

Eric Evans - Good Design is Imperfect Design [video] Eric Evans. Domain-Driven Design Europe 2017.

David West - The Past and Future of Domain-Driven Design [video] David West. Domain-Driven Design Europe 2017. The state-of-the-practice for software development in 1968 was ‘Domain-driven Design’. Then “Software Engineering” happened and we lost our way. Academia insisted on telling practitioners how they should do their jobs. Numerous practitioner led ‘revolts” — including Eric Evans’ DDD — attempted to escape the shackles of formalism and put us back on track; but with very limited success. This talk will discuss the specifics of what went wrong and provide concrete recommendations on how to make things right.

Lost in Translation [blog] Sindre Ruud Grønningen. It is said that the expressive power of the human language is what separates us from animals. It gives us the ability to communicate complex and abstract ideas, or create beautiful poetry. At the same time, however, it can easily take us down the dark path of misunderstandings. They can lead to everything from guests showing up an hour late, couples breaking up for no good reason, and even to the use of nuclear weapons (PDF). And they’re arguably the primary cause of death of many software projects.

The Art of Discovering Bounded Contexts [slides] Nick Tune. Everyone is talking about bounded contexts, but nobody can agree on what they are. Are they microservices? Do they contain the UI? Do they exist in the real world? What if bounded contexts are actually an incredibly powerful tool for enabling your entire organisation to go faster?

Distributed task assignment with failover [blog] Ayende Rahien. So we want just one node to update its state, but if that node goes down midway, we need someone else to pick up the slack.. For RavenDB, those sort of tasks includes things like ETL processes, Subscriptions, backup, bootstrapping new servers and more. We keep discovering new things that can use this sort of behavior.

Emergent Boundaries [video] Mathias Verraes. Modelling is more than knowledge management. It’s complexity management. To reduce cognitive load, you split things up, whether at small scale, in code, or in the large, such as Bounded Contexts. But if you choose large boundaries upfront, you risk getting it wrong, and being stuck to them for a long time. Join Mathias in a discussion of better ways of empirically discovering boundaries instead.

From a #DDDesign perspective you build what is complex and distinguishing, you buy what is complex and generic/replaceable. [tweet] Vaughn Vernon.

Webinar: Strategic (Domain Driven) Design with Spring Boot [video] Michael Plod.

Daniel Bryant on Microservices and Domain Driven Design [podcast] Daniel Bryant and Wesley Reisz. Wesley Reisz talks to Daniel Bryant on moving from monoliths to micro-services, covering bounded contexts, when to break up micro-services, event storming, practices like observability and tracing, and more.

Writing and Testing an Event Sourcing Microservice with Kafka and Go [blog] Adam Pahlevi. In this tutorial, we will take a look at how Kafka can help us with handling distributed messaging in a Go application, by using the Event Sourcing pattern.

Entities and Security: identity matters [blog] Dan Bergh Johnsson, Daniel Deogun, and Daniel Sawano. This article discusses the properties of the model objects known as entities and how they function inside the domain model. Knowing about fundamental DDD concepts such as entities is a great way to start your Secure by Design journey – here is what you need to know to be ready to dive in.