Week 42, year 2017

  • DDD Weekly: Issue #46 - Event Sourcing and CQRS with .NET Core and SQL Server [book] Nick Chamberlain. *My new book is available for pre-order now! For being such a wonderful and loyal subscriber, use promo code: fpc-preorder for a $10 discount. Please stay tuned for more about launch dates!* Explore DDD 2017 Videos Live on YouTube [video] Paul Rayner. Software architecture is failing [blog] Alex Hudson. I believe that if you don’t encounter the constraints of the layers underneath you, you’re not working at a high enough level. [DDD Weekly]
Permalink | From 16 October 2017 to 22 October 2017 | Last updated on: Mon, 7 Jun 2021 09:10:49 GMT

Week 41, year 2017

  • Handling Non-Aggregate Root Events for Child Entities - How should events be applied to child Entities when the Aggregate Root ultimately handles incoming commands? For example, constructing an Entity that is within the Aggregate Root boundary. Where do you call the constructor so that the constructor obeys the invariants being protected by the Entity? [Nick Chamberlain on Nick Chamberlain]
  • How to do better domain modeling using Event Sourcing - Learn how to implement your domain model using event sourcing as the storage for your aggregates. Your code will be clearer by the separation of state from domain logic and support for infrastructure-free immutable implementation. [Serialized development blog]
  • Your software is not your most valuable asset - A short story about why the most important thing in your development company is not your [Serialized development blog]
  • How to Handle Set Based Consistency Validation in CQRS - This question keeps cropping up. How do you handle set based consistency validation in CQRS. In fact, one of my subscribers had this scenario: “I have a user registration system with login/password. The login must be unique in the system. How do I implement such a requirement?” Just in case you are not familiar with CQRS and […] [Learn CQRS and Event Sourcing]
  • DDD Weekly: Issue #45 - Building Evolutionary Architectures [book] Patrick Kua.) While I’m sure we have much to learn about doing software architecture in an evolutionary style, this book marks an essential road map on the current state of understanding Vaughn Vernon Uses Reactive DDD to Model Uncertainty in Microservices [blog] Thomas Betts, Vaughn Vernon. Don’t try to create a façade that allows you to think you aren’t in a state of uncertainty. Rather, make your best effort and model the uncertainty. [DDD Weekly]
Permalink | From 09 October 2017 to 15 October 2017 | Last updated on: Mon, 7 Jun 2021 09:10:49 GMT

Week 40, year 2017

  • Why we Avoid Putting Value Objects in Events - What’s the harm in putting Value Objects in your Events? Say we have the following event: public class PlannedNewRoastDay : Message { public readonly Guid Id; public readonly string RoastDate; public PlannedNewRoastDay(Guid id, string roastDate) { Id = id; RoastDate = roastDate; } } [Nick Chamberlain on Nick Chamberlain]
  • Event Sourcing example application - This is code example for a simple Event Sourcing and CQRS application using Javascript. [Serialized development blog]
  • A simple ToDo app - We have created a small ToDo application do demonstrate how to use our API:s to build a CQRS/EventSourcing application [Serialized development blog]
  • DDD Weekly: Issue #44 - 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. [DDD Weekly]
  • Domain events: simple and reliable solution - Today, I’d like to write about a simple and reliable way to implement domain events. [Enterprise Craftsmanship]
Permalink | From 02 October 2017 to 08 October 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 39, year 2017

  • EventStorming's Coincidence with Business Process Improvement - The purpose and implementation of EventStorming doesn’t only exist inside of Domain-Driven Design. Although the name “EventStorming” does tie itself to DDD, it has foundations in process improvement that have nothing to do with DDD and these are not new. Parallels with business process improvement and LEAN One technique that I’ve personally seen is business process improvement exercises used in Manufacturing to discover bottlenecks. Here, the same issue applies - Domain Experts aren’t fully aware of the bottlenecks outside of their processes. They live in a silo. While one process works well in their division - say the Accounting Department, the interaction with their division that includes this process is potentially a bottleneck for an outside division, like Sales. [Nick Chamberlain on Nick Chamberlain]
  • DDD Weekly: Issue #43 - Evolutionary Pressures Forcing Software Architects to Adapt [blog] Nick Tune. To remain effective, you must learn to co-design and coevolve organisational and technical boundaries. You’re not a software architect anymore, you are a sociotechnical systems architect. Power of the Log:LSM & Append Only Data Structures [video] Ben Stopford. Ben Stopford talks about the beauty of sequential access and append only data structures, in the context of a little known paper entitled “Log Structured Merge Trees”. [DDD Weekly]
Permalink | From 25 September 2017 to 01 October 2017 | Last updated on: Mon, 7 Jun 2021 09:10:50 GMT

Week 38, year 2017

Permalink | From 18 September 2017 to 24 September 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 37, year 2017

  • How do We Write Factories for Event Sourced Aggregates? - Take the following use case: I have an Employee aggregate I want to create a new Employee I wrote Employee.Create(...) …but Aggregates don’t create themselves (Don’t Create Aggregate Roots), especially when it’s a clear use case where someone like an Admin is responsible for creating new Employees. We’re suppose to create a factory for situations like this. This way, the factory can ensure invariants are enforced on the creation of the Aggregate, just like the Aggregate enforces invariants on any other state changes. But, when I created a static factory Employee.Create(...) and intend for Employee to be an Event Sourced Aggregate, when/where/how do I send my EmployeeCreated event so that it gets saved to the Event Store? [Nick Chamberlain on Nick Chamberlain]
  • Using Event Sourcing in a Legacy Environment - Have you ever been met with deaf ears when you tell your team there are benefits to thinking about architecture differently? What about when you bring up buzzwords like “Event Sourcing” or “Domain-Driven…”? I have, which is why I write about it… [Nick Chamberlain on Nick Chamberlain]
  • Event Sourcing and CQRS sample code - We just published some new sample code to our public Github account. It includes samples for Event Sourcing with Java and using our APIs with Golang. Please check it out! [Serialized development blog]
  • DDD Weekly: Issue #42 - Why Software Hasn’t Worked for You [blog] Vaughn Vernon. This article is meant, not primarily for the software developer or project manager, but for the strategically qualified and motivated business professional. Its goal is to challenge the status quo of business software development and introduce an approach that may appear as novel in most enterprises. This approach focuses on delivering critically distinguishing solutions that are intended to propel business toward greater commercial success. [DDD Weekly]
Permalink | From 11 September 2017 to 17 September 2017 | Last updated on: Mon, 7 Jun 2021 09:10:50 GMT

Week 35, year 2017

  • DDD Weekly: Issue #41 - Akka.NET v1.3 is Now Available on .NET 4.5 and .NET Standard 1.6 [blog] Aaron Stannard. Akka.NET v1.3 has been a work in progress since .NET Core was first released last year and is the culmination of hundreds of commits by dozens of contributors. You can read the official Akka.NET v1.3 release notes here, but what follows are my notes on some of the changes end-users can expect when adopting v1.3 and upgrading from earlier versions of Akka. [DDD Weekly]
  • Value Object: a better implementation - This post is about a better implementation of Value Object. [Enterprise Craftsmanship]
Permalink | From 28 August 2017 to 03 September 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT