Week 4, year 2024

  • Unravelling Event Sourcing: Key Definitions - In the ever-evolving landscape of software architecture, one paradigm stands out for its ability to capture the essence of business processes and enable unprecedented insights – Event Sourcing. [Event Store blog]
  • Bottlenecks of Scaleups #06: Onboarding - The last year has been a hard one for the technology industry, which faced its greatest waves of cutbacks and layoffs since the dotcom crash at the beginning of the century. As 2024 begins, we're seeing the early signs of a turn-around, which hopefully means technology organizations will soon be thinking of hiring again. Should such happy days return, firms will again run into the common problem of taking too long for new hires to become effective. Tim Cochran and Premanand Chandrasekaran address this in the sixth part of our series on the bottlenecks of scaleups. In this first installment, Tim and Prem look the signs that a growing organization is running into this bottleneck. [Martin Fowler]
  • Onboarding bottleneck: creating a path to effectiveness - Tim and Prem begin their discussion of how to get out of the difficulties of onboarding by explaining how to create a path to effectiveness for new hires. Such a path outlines the needs of employee and how the onboarding process should fulfill them. [Martin Fowler]
  • Improving my Emacs experience with completion - I’ve been using Emacs for many years, using it for any writing for my website, writing my books, and most of my programming. (Exceptions have been IntellJ IDEA for Java and RStudio for R. ) As such I’ve been happy to see a lot of activity in the last few years to improve Emacs’s capabilities, making it feel rather less than a evolutionary dead end. One of the biggest improvements to my Emacs experience is using regexs for completion lists. Many Emacs commands generate lists of things to pick from. I want to visit (open) a file I type the key combination to find a file, and Emacs pops up a list of candidate files in the minibuffer (a special area for to interact with commands). [Martin Fowler]
  • LLMs & Software Design: Beginning My Learning Journey - In the past several months, like many people, I’ve been experimenting with “large language models” (LLMs). For the first time, we have software that can deal with natural language and basic reasoning! Even better, this technology is accessible to us all of us, and it is versatile enough to be incorporated into all sorts of apps. Naturally, my thoughts turn to how they might be used in our work of developing software that helps people operating in complex domains. Things are happening very fast, and, like everyone else, I have my speculations on where we are headed. I’ll avoid the far out speculation in this article, though. I’ll go so far as to say this: I don’t think software designers will be obsolete within the next decade. [Articles – Domain Language]
  • How TypeScript can help in modelling business workflows - TypeScript is an intriguing language. Some say that its type system, by itself, is Turing Complete. Some take it to the extreme and even… [Event-Driven by Oskar Dudycz]
  • EventStoreDB and PostgreSQL - With EventStoreDB, there is no need to get rid of everything you’ve built in PostgreSQL. You can use EventStoreDB for your event-driven architecture and integrate into Postgres, keeping the outputs your business is familiar with. In this article we outline how EventStoreDB and Postgres complement each other and how EventStoreDB with Postgres work together with a step-by-step walkthrough. How EventStoreDB & Postgres complement each other How EventStoreDB & Postgres work together What is EventStoreDB? What is Postgres? [Event Store blog]
Permalink | From 22 January 2024 to 28 January 2024 | Last updated on: Mon, 5 Feb 2024 14:06:35 GMT

Week 3, year 2024

  • E-commerce with DDD & Event Sourcing: Event Store’s Erik Shafer’s talk at Explore DDD - Explore DDD, the conference where software professionals come together to discuss advanced Domain Driven Design topics and its practical applications, has gained a new speaker this year in the form of Event Store’s Developer Advocate, Erik Shafer. [Event Store blog]
  • A major revision of Continuous Integration - At the turn of the century, I was lucky to involved in several projects that developed the practice of Continuous Integration. I wrote up our lessons from this work in article on my website, where it continues to be a oft-referenced resource for this important practice. Late last year a colleague contacted me to say that the article, now nearly twenty years old, was still useful, but was showing its age. He sent me some suggested revisions, and I used this as a trigger to do a thorough revision of the article, considering every section in the original, and adding new ones to deal with issues that have appeared in the last two decades. During those decades Feature Branching has been widely adopted in the industry. Many colleagues of mine feel that Continuous Integration is a better fit for many teams, I hope this article will help readers assess if this is the case, and if so, how to implement Continuous Integration effectively. [Martin Fowler]
  • Tales from the .NET Migration Trenches - Session State - Posts in this series: Intro Cataloging Empty Proxy Shared Library Our First Controller Migrating Initial Business Logic Our First Views Session State Hangfire Authentication Middleware Turning Off the Lights Believe it or not, things have been relatively simple so far. In the next few posts, we'll get to [Jimmy Bogard]
  • Stream ids, event types prefixes and other event data you might not want to slice off - You’re reading much more code than you’re writing. Readability is a highly subjective term. That’s probably why some call what we’re doing… [Event-Driven by Oskar Dudycz]
Permalink | From 15 January 2024 to 21 January 2024 | Last updated on: Wed, 11 Sep 2024 14:36:58 GMT

Week 2, year 2024

  • Critical Software Redesign: Creating the Environment for Large Scale Change - When do you choose to do a major redesign, and how to do you prepare your organization for it to succeed? There’s a moment where it’s too soon to invest in a radical new software design for your system. And … Continue reading → [The Responsible Designer]
  • Critical Software Redesign: Creating the Environment for Large Scale Change - There’s a moment where it’s too soon to invest in a radical new software design for your system. And then you reach a moment where it’s too late, too expensive to change it. Is there a sweet spot in between, a point where pivoting the software design is the right choice, at the right time? We’ve updated our book, “Design and Reality” with a new essay, “Critical Software Redesign: Creating the Environment for Large Scale Change”. It explores how you as a technical leader can prepare for major design shifts. We use as a running example, the evolution of a product that calculates taxes on global shipments. In a nutshell, ongoing design challenges, the solutions you pick for them, and the impacts of those solutions can be treated as signals, both positive and negative. [Mathias Verraes]
  • Why Event Sourcing? - What if you could scale and distribute data freely, without forming a tightly coupled mess? And what would you say if we told you that your application is only capturing the tip of the iceberg when it comes to your data, yet it's capable of so much more? We expect you'd ask us how. In just 30 minutes, you can find out! [Event Store blog]
  • Should you record multiple events from business logic? - Asking people for feedback is an intriguing story. I like to get constructive criticism for my work, as that allows me to learn something… [Event-Driven by Oskar Dudycz]
Permalink | From 08 January 2024 to 14 January 2024 | Last updated on: Sun, 14 Jan 2024 22:06:34 GMT

Week 1, year 2024

  • My favorite musical discoveries of 2023 - Another year, another time to pick six favorite musical discoveries. 2023 includes ambient bluegrass, Afro-Andean funk, Northumbrian smallpipes, dancing kora, and Ukrainian folk jazz. [Martin Fowler]
  • Bliki: Legacy Seam - When working with a legacy system it is valuable to identify and create seams: places where we can alter the behavior of the system without editing source code. Once we've found a seam, we can use it to break dependencies to simplify testing, insert probes to gain observability, and redirect program flow to new modules as part of legacy displacement. Michael Feathers coined the term “seam” in the context of legacy systems in his book Working Effectively with Legacy Code. His definition: “a seam is a place where you can alter behavior in your program without editing in that place”. Here's an example of where a seam would be handy. Imagine some code to calculate the price of an order. [Martin Fowler]
  • Not all issues are complex, some are complicated. Here's how to deal with them - Cynefin’s framework states that we have four types of decision-making contexts (or domains): clear, complicated, complex, and chaotic. They… [Event-Driven by Oskar Dudycz]
Permalink | From 01 January 2024 to 07 January 2024 | Last updated on: Tue, 16 Jan 2024 22:06:33 GMT

Week 50, year 2023

  • Bliki: Test Driven Development - Test-Driven Development (TDD) is a technique for building software that guides software development by writing tests. It was developed by Kent Beck in the late 1990's as part of Extreme Programming. In essence we follow three simple steps repeatedly: Write a test for the next bit of functionality you want to add. Write the functional code until the test passes. Refactor both new and old code to make it well structured. Although these three steps, often summarized as Red - Green - Refactor, are the heart of the process, there's also a vital initial step where we write out a list of test cases first. [Martin Fowler]
  • Highscalability is Up For Sale - Hi everyone, First, I’d like to sincerely thank everyone who has supported Highscalability over the years. We’ve grown together through some interesting times. Massive changes have occurred in how systems are built, and my goal has always been to help people learn how to build them better. I’d like to think that goal was accomplished. Obviously, for that last several years, things have been quiet around here. This has always been a one programmer show, and for everything, there is a season. [High Scalability]
  • Unlocking Data Potential: Synergizing EventStoreDB and MongoDB for Optimal Data Management - Introduction [Event Store blog]
  • Bliki: Software And Engineering - Throughout my career, people have compared software development to “traditional” engineering, usually in a way to scold software developers for not doing a proper job. As someone who got his degree in Electronic Engineering, this resonated with me early in my career. But this way of thinking is flawed because most people have the wrong impression of how engineering works in practice. Glenn Vanderburg has spent a lot of time digging into these misconceptions, and I strongly urge anyone who wants to compare software development to engineering to watch his talk Real Software Engineering. It's also well worth listening to his interview on the podcast Oddly Influenced. Sadly I've not been able to persuade him to write this material down - it would make a great article. [Martin Fowler]
  • Hitchhiker's Guide To Moving From Relational Data To Events - Knock knock? Who’s there? It’s me, Oskar, the end is near, did you know that? Ah, you know it but don’t know how to proceed? Let’s talk… [Event-Driven by Oskar Dudycz]
Permalink | From 11 December 2023 to 17 December 2023 | Last updated on: Wed, 3 Jan 2024 22:06:38 GMT