DDD Weekly: Issue #35

May 8, 2017

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

How would it be done without computers? [blog] Nick Chamberlain. When we started, we had a a mixture of technical and business constraints muddying the issue at hand. By thinking about how humans would interact with each other to perform a task, you are able to think more purely about the Domain instead of getting too far ahead of yourself with implementation details.

Architecting & Designing for Change, Events-First [video] Russ Miles. In this talk Russ Miles, Lead Engineer at Atomist and Founder of Russ Miles & Associates, will walk through how to design a software systems that evolves, and even thrives, on change itself. With practical DDD examples, and the assistance of Atomist, Russ will show the evolution of a system from DDD layers to an adaptable, hexagonal, town-plan.

Undoing the harm of layers [blog] Bjørn Einar Bjartnes. To me, the answers are clear. I will never again use technical layers as a primary strategy of decomposition (technical layers inside functional boundaries are still ok). Continuously refactoring to separate functional modules is still hard work, but the horror image of our big ball of mud should help us stay strong and steer in the right direction.

Domain Command Patterns - Handlers [blog] Jimmy Bogard. In the last post, we looked at validation patterns in domain command handlers in response to a question, “Command objects should [always/never] have return values”. This question makes an assumption - that we have command objects! In this post, I want to look at a few of our options for handling domain commands

The Long Sad Story of MicroServices [video] Greg Young. In this talk you will look at the history of the concepts around microservices. You will also look at what has changed vs what has stayed the same, how have the architectural goals changed? What areas of learning are worth following and what is just a fad? What are the core concepts and what is cruft?

Data Intensive Applications with Martin Kleppmann [podcast] Software Engineering Daily. A new programmer learns to build applications using data structures like a queue, a cache, or a database. Modern cloud applications are built using more sophisticated tools like Redis, Kafka, or Amazon S3. These tools do multiple things well, and often have overlapping functionality. Application architecture becomes less straightforward.

Free Download: Chapter 4 of Reactive Systems Architecture [book] Cake Solutions. This preview chapter focuses on Production ready, reliable, resilient and highly available systems and talks you through the reasons why your business needs to get serious about reliable messaging systems

Microservices for everyone [book] Matthias Noback. We’re almost past the hype. It’s time to prove that this can work.

Conflict Resolution for Eventual Consistency [blog] Martin Kleppmann. There is value in having different data structures that can automatically merge without having to write manual conflict resolution code. But, concurrency still is difficult - even if you abstract away concurrent communication, you still can still end up in a merge situation with no one right way of handling it.

Akka Typed: Coexistence [blog] Patrik Nordwall. In this blog post we have illustrated how you can try out Akka Typed in your existing projects and use it for some actors while not having to migrate everything in one go.

Tech Strategy: You Need it, But What is it? [blog] Nick Tune. A tech strategy creates high alignment. If you don’t have a clear tech strategy, everyone will make assumptions. Placing the success of your business on a whole organisation making the same assumptions is a rather large bet.

Explore DDD 2017 is in Denver, Colorado. Sept 19-22. The big blue bear is waiting for you! [tweet] Explore DDD 2017.

Top Domain Model: I’ve been pivoting all night long [blog] Szymon Kulec. When dealing with high volumes of operations ask, if the model can be pivoted? Maybe, selecting another owner of business operation, or even, modelling a new type of an aggregate, can help you deal with requirements you need to satisfy.

Modern Authentication Architecture with Dominick Baier [blog] Channel 9, Dominick Baier. In this bonus footage from Episode 2 of the MVP Show, Dominick Baier walks us through two typical modern authentication scenarios. One is “machine to machine” communication and one is web-based user authentication with delegated API access. Both scenarios are achieved using the “token service” abstraction, where all authentication logic and access token issuance is encapsulated in a service.