Alex Lawrence's Blog

March 23, 2021

Read Model on the write side

This post explains why and how Read Models can be useful on the write side of a software. First, the terms CQRS, write side, read side and Read Models are briefly explained. Then, it is discussed how the read side works and why Read Models can also be used in other areas. Next, one common use case for read data on the write side is described. As last part, the whole topic is illustrated with a simplified example.
 •  0 comments  •  flag
Share on Twitter
Published on March 23, 2021 17:00

March 2, 2021

Insights from deep-diving into TypeScript

This post summarizes some insights from my deep dive into TypeScript from when writing an appendix for my book. While I have been working with TypeScript for quite some time, most of the code I encountered was pretty trivial. The majority of the following aspects were new to me and helped me to understand the language better. Also, writing a lot of my book’s code again in TypeScript allowed me to identify potential downsides.
 •  0 comments  •  flag
Share on Twitter
Published on March 02, 2021 16:00

February 25, 2021

Releasing Appendix B for my book

Today, I released version 1.3.0 of my book “Implementing DDD, CQRS and Event Sourcing”.This release adds Appendix B: Going into production. The appendix uses EventStoreDB as Event Store, Redis for Read Models, RabbitMQ as Message Bus and NGINX as HTTP proxy.Also, this release applies the following changes to the existing content: add section on frameworks to conclusion part fix line lengths of various code examples fix password hashing when changing user password simplify indexed storage component with partial updates introduce link to project overview from team management page shorten note example replace door locker example with message inbox example fix missing parts of TypeScript implementation Buy the book on Leanpub
 •  0 comments  •  flag
Share on Twitter
Published on February 25, 2021 16:00

February 3, 2021

Releasing Appendix A for my book

The latest version of my book “Implementing DDD, CQRS and Event Sourcing” includes an appendix on the use of static types. The examples are implemented in TypeScript.As next step, I will start to work on another appendix about going into production. There, all exemplary code for persistence and messaging will be replaced with suitable existing technologies.Buy the book on Leanpub
 •  0 comments  •  flag
Share on Twitter
Published on February 03, 2021 16:00

Releasing Appendix A of my book

The latest version of my book “Implementing DDD, CQRS and Event Sourcing” includes an appendix on the use of static types. The examples are implemented in TypeScript.As next step, I will start to work on another appendix about going into production. There, all exemplary code for persistence and messaging will be replaced with suitable existing technologies.Buy the book on Leanpub
 •  0 comments  •  flag
Share on Twitter
Published on February 03, 2021 16:00

January 19, 2021

Domain Modeling by example

This post illustrates a Domain Modeling process using a simple example. As first step, the actual problem is identified. Next, a solution approach is discovered. This is followed by the creation of an initial Domain Model. Afterwards, a first implementation is provided. Then, technical and logical challenges are discussed and solved. Also, the differences between a Domain Model and its implementation are explained. The post ends with a recommendation to use a problem-centric and model-driven approach, even for small projects.
 •  0 comments  •  flag
Share on Twitter
Published on January 19, 2021 16:00

January 14, 2021

Releasing version 1.1.0 of my book

Yesterday, I released version 1.1.0 of my book “Implementing DDD, CQRS and Event Sourcing”. This release includes various refinements and improvements of the existing book content. Note that if you own a copy and have already started reading, there is no need to start over again.Changelog Here is a summary of the changes that have been made: Typo fixes in all chapters Language improvements in all chapters Size reduction of most images Restructuring of Chapter 2, addition of diagram Note addition about further architectural patterns in Chapter 4 Shortening of many code examples Significant shortening of classified ad platform example in Chapter 10 Removal of some irrelevant comments and remarks Less is more Compared to the previous release of my book (1.
 •  0 comments  •  flag
Share on Twitter
Published on January 14, 2021 16:00

December 28, 2020

Using the filesystem for illustration purposes

This post describes the approach of using the filesystem for illustrating the implementation of concepts related to persistence and messaging. Some of the explanations are put into the context of my book “Implementing DDD, CQRS and Event Sourcing”. The approach is compared to the alternatives of using existing technologies as well as providing pseudo in-memory implementations. At the end, the post outlines the most relevant benefits and implications.The approach Apart from Node.
 •  0 comments  •  flag
Share on Twitter
Published on December 28, 2020 16:00

December 20, 2020

Why my book uses Node.js and JavaScript

This post explains why I chose Node.js as runtime platform and JavaScript as programming language for my book “Implementing DDD, CQRS and Event Sourcing”. The described reasons incorporate personal experience, the desired target audience, as well as platform and language characteristics. Also, the benefits and implications of static types are briefly discussed. Finally, the post closes with an outlook of future additions to the existing book.Personal experience One reason for using Node.
 •  0 comments  •  flag
Share on Twitter
Published on December 20, 2020 16:00

December 17, 2020

Why I wrote a book on DDD, CQRS and Event Sourcing

This post explains my motivation for writing a book on DDD, CQRS and Event Sourcing. It starts with outlining how I came in contact with the concepts. Then, it describes how I first applied the patterns accidentally and afterwards worked with them extensively. Finally, it presents the initial book idea, my personal progress throughout the years and the actual result.First contact I first heard of Domain-Driven Design when I worked as a Senior Software Developer at AutoScout24.
 •  0 comments  •  flag
Share on Twitter
Published on December 17, 2020 16:00