Archive for July 2021

Week 30, year 2021

  • Feature Parity - On many occasions when my colleagues find themselves talking to IT executives they hear how the executives have a suite of aging applications built using soon to be, if not already end of life technologies. More often that not these systems are hosted in costly data centers managed by 3rd parties and with inflexible contracts. These applications are critical to the successful operation of the business, while at the same time being one of the largest sources of business and operational risk. One approach in this situation is to try to minimize the impact of replacement on the broader organization by 'simply' replacing the technology while leaving everything else 'as is'. Whilst Feature Parity often sounds like a reasonable proposition, we have learnt the hard way that people greatly underestimate the effort required, and thus misjudge the choice between this and the other alternatives. more… [Martin Fowler]
  • Specification Pattern vs Always-Valid Domain Model - There’s an interesting controversy between two DDD topics: the Specification pattern and the Always-Valid domain model. [Enterprise Craftsmanship]
  • Notes about C# records and Nullable Reference Types - In the last months, I spent quite some time playing with C# records and Nullable Reference Types. I was hoping that thanks to them, I would… [Event-Driven by Oskar Dudycz]
  • Domain-Driven Refactoring: Extracting Domain Services - In my last post, we looked at the Compose Method refactoring as a means of breaking up long methods into smaller ones, each with an equivalent level of granularity. This is the refactoring in my applications I tend [Jimmy Bogard]
  • An example: Integration Middleware Removal - To illustrate how these patterns work in practice, Ian, Rob, and James describe an example of how one of our teams used a number of Legacy Modernization Patterns to successfully replace integration middleware critical to the operation of their client's business as part of a larger legacy modernization programme. They combined patterns and refactorings to successfully manage risk to the business, and facilitate eating this particularly gristly part of the elephant. more… [Martin Fowler]
  • Bloom Filters in EventStoreDB - How many new streams can be created per second in EventStoreDB? [Event Store blog]
Permalink | From 26 July 2021 to 01 August 2021 | Last updated on: Fri, 30 Jul 2021 18:52:10 GMT

Week 29, year 2021

  • Patterns of Legacy Displacement - My colleagues do a lot of work that involves replacing legacy software systems. Three of my colleagues - Ian Cartwright, Rob Horn, and James Lewis - have started to capture their experience and advice for this is a collection of patterns. We begin with anoverview article that lays out four main categories of activity that need to be done for a successful legacy displacement. more… [Martin Fowler]
  • Extract Product Lines - To do effective legacy displacement, we need to figure out how to break down the problem into manageable pieces. Extract Product Lines does this by identifying product lines and using them as the basis for migration. more… [Martin Fowler]
  • In what language are programmers writing? - Wikipedia states that there are around 700 programming languages. Some are more popular. Some are less. But what language do programmers… [Event-Driven by Oskar Dudycz]
  • Domain-Driven Refactoring: Long Methods - In the last post, I walked through the main, immediate code smell we saw of a long method [Jimmy Bogard]
Permalink | From 19 July 2021 to 25 July 2021 | Last updated on: Tue, 14 Dec 2021 15:26:27 GMT

Week 28, year 2021

  • EventStoreDB 21.6: stability, performance, and strategic importance - June is here and, as planned, EventStore 21.6 has been shipped. It is a substantial release containing important usability, stability, performance, and fixes and features as well as being an important step towards EventStoreDB's strategic architectural vision. [Event Store blog]
  • Form a wall! And other concerns about security - There were 0.3 seconds left till the end of the NBA match. Detroit Pistons were leading by a single point against San Antonio Spurs. The… [Event-Driven by Oskar Dudycz]
  • How to get the current entity state from events? - In Event Sourcing, the application state is stored in events. When we add an event, it is placed at the end of a structure called an append-only log (read more in this post What if I told you that Relational Databases are in fact Event Stores?). Events are the source of truth. This has many advantages, such as: [Event Store blog]
  • Sponsored Post - Pinecone, Kinsta, Bridgecrew, IP2Location, StackHawk, InterviewCamp.io, Educative, Stream, Fauna, Triplebyte [High Scalability]
  • Snapshotting Strategies - Looking at resources from the Internet, you may conclude that snapshots are an essential part of the Event Sourcing system. It may be tempting to read the current state from a single record instead of multiple events. We could store it separate database in parallel to appending a business event. You cannot deny that reading a single entry is faster than reading more of them, right? [Event Store blog]
  • RabbitMQ Streams Overview - A RabbitMQ stream models an append-only log with non-destructive consuming semantics. This means that – contrary to traditional queues in RabbitMQ – consuming from a stream does not remove messages. Streams in RabbitMQ are persisted and replicated. This translates to data safety and availability (in case of the loss of a node), as well as scaling (reading the same stream from different nodes.) [RabbitMQ - Blog via Aggregater Linklog]
  • Domain-Driven Refactoring: Procedural Beginnings - As part of the red-green-refactor TDD process, the second step of making the test pass means we write the simplest (but still correct) code that can possibly work that flips our test from red to green. [Jimmy Bogard]
  • AxonIQ Academy Frequently Asked Questions - If you were to sneak-peek into AxonIQ’s internal chat, you’d quickly notice that the following comic from xkcd.com pops up once in a while in quite a few channels. [Blog]
Permalink | From 12 July 2021 to 18 July 2021 | Last updated on: Fri, 4 Nov 2022 18:36:45 GMT

Week 27, year 2021

Permalink | From 05 July 2021 to 11 July 2021 | Last updated on: Wed, 7 Jul 2021 18:13:46 GMT