DDD Weekly: Issue #44

October 6, 2017

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

What Everyone Gets Wrong About Stakeholders [blog] Melissa Perri. Designing for consensus of internal people who do not use or buy the products just creates terrible products.

Antifragile Software [book] Russ Miles. This book is a collection of patterns that you can apply to build software that thrives on change and the disorder it brings.

Streams: a new general purpose data structure in Redis [blog] Salvatore Sanfilippo. One very important use case is time series, but my feeling is that also streaming of messages for other use cases via TREAD is going to be very interesting both as replacement for Pub/Sub applications that need more reliability than fire-and-forget, and for completely new use cases.

Composite UIs for Microservices - Server Composition [blog] Jimmy Bogard. View composition is clearly the easier path since we have tools built in, but there are still cases we need to perform model composition

An Approach to Designing a Distributed, Fault-Tolerant, Horizontally Scalable Event Scheduler [blog] Sandeep Malik. A time base event scheduler is a system that can be used by a service to schedule a request that needs to be processed in future. The service registers an event in the scheduler and suspends the processing of current request.

Encapsulated Collections in Entity Framework Core [blog] Steve Smith. This isn’t just good domain-driven design; it’s good object-oriented design as well.

The Path to Becoming a Software Architect [blog] Nikolay Ashanin. Have you ever wondered what career opportunities a developer has? What directions are open, beyond what horizons to grow. And most importantly, where are developers beyond the age of 45?

Keeping Time in Real Systems [video] Kavya Joshi. Time, or a proxy for the notion of time, is crucial in any distributed system. This talk will tour the fascinating timekeeping mechanisms used in real systems. We will explore atomic clocks, NTP and GPS through systems that use them, and logical clocks in the context of systems built on logical time. We will delve into the optimizations that make these mechanisms practical for use. Finally, we will ponder over how the timekeeping mechanism affects the properties of the entire system.

Why we Avoid Putting Value Objects in Events [blog] Nick Chamberlain. We can’t alter Events as our Domain Model evolves, which is why we must version our Events. But our Domain Model is mutable, and this is why we can’t make our Events dependent on Domain Model objects.