Archive for January 2024

Week 5, year 2024

  • Tales from the .NET Migration Trenches - Hangfire - 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 In the last post, we encountered our first instance of shared runtime data between our different ASP.NET 4.8 and [Jimmy Bogard]
  • Onboarding bottleneck: more steps for good onboarding - Tim and Prem continue outlining the steps for an effective onboarding process. They talk about including new hires in the company culture, nailing the post-offer and first-day experience, and investing in self-service knowledge management [Martin Fowler]
  • AxonIQ Academy: Learning for event-driven architecture - Introduction Two years ago, AxonIQ launched AxonIQ Academy to make Event Sourcing within event-driven architecture more accessible to developers. The academy begins with a brief explanation of how Domain-Driven Design (DDD), Command Query Responsibility Separation (CQRS), and Event Sourcing (ES) can help build applications that can be better prepared to scale in a distributed architecture. Now, we're customizing the learning experience to make it even easier for developers to navigate this journey. [AxonIQ Blog]
  • Onboarding bottleneck: final installment - Tim and Prem finish their article on effective onboarding. They discuss the value of pair programming, setting up personal environments, and removing friction from the process. [Martin Fowler]
  • Production-Grade Event Sourcing Workshop - Modelling, DevOps, Process - Putting the career bets is not easy; I made boring and pragmatic choices for most of my career. They took me far. Yet, I always felt that… [Event-Driven by Oskar Dudycz]
Permalink | From 29 January 2024 to 04 February 2024 | Last updated on: Wed, 11 Sep 2024 14:36:58 GMT

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