Week 20, year 2025

  • Coding Assistants Threaten the Software Supply Chain - We have long recognized that developer environments represent a weak point in the software supply chain. Jim Gumbley and Lilly Ryan explore how agentic coding assistants expand the attack surface of software supply chains and what measures we need to do to safeguard security when using them. [Martin Fowler]
  • Building Custom Tooling with LLMs - Tools that treat diagrams as code, such as PlantUML, are invaluable for communicating complex system behavior. But Unmesh Joshi often wished for an extension to walk through these diagrams step-by-step. Yet, extending established tools like PlantUML often involves significant initial setup - parsing hooks, build scripts, viewer code, packaging - enough “plumbing” to deter rapid prototyping. He narrates now he used an LLM to build a small extension adding step-wise playback to PlantUML sequence diagrams. This illustrates how syntax design, parsing, SVG generation, build automation, and an HTML viewer were iteratively developed through a conversation with an LLM - turning tedious tasks into manageable steps. [Martin Fowler]
Permalink | From 12 May 2025 to 18 May 2025 | Last updated on: Wed, 14 May 2025 15:19:35 GMT

Week 19, year 2025

  • Function calling using LLMs - While LLMs excel at generating cogent text based on their training data, they may also need to interact with external systems. Kiran Prakash describes how we get them to construct external function calls to do this. The LLM does not execute these calls directly, instead it creates a data structure that describes the call, passing that to a separate program for execution and further processing. The LLM's prompt includes details about possible function calls and when they should be used. [Martin Fowler]
  • LangGraph Checkpointer on KurrentDB - Overview KurrentDB is well-suited for agentic workflows thanks to its append-only storage of all state transitions as events in streams. This approach ensures a complete historical record, enabling reconstruction of any process or entity's journey, unlike CRUD systems that only retain the latest state. The document illustrates how KurrentDB can serve as a LangGraph checkpointer that enhances observability for internal checkpointing processes in complex agentic systems. If you are already familiar with how KurrentDB works, you can skip to how LangGraph works, how KurrentDB can be used to solve checkpointing problems, and the associated Python Notebook below or in our examples folder: https://github.com/kurrent-io/langgraph-checkpoint-kurrentdb/tree/master/examples [Event Store blog]
  • Archiving: Keep your data hot and cold - In this blog post, we’ll walk you through using Archiving, our latest cool feature, available from KurrentDB 25.0. Archiving can save you a tremendous amount of disk space on your KurrentDB nodes by moving old chunk files from the local disk to an external archive such as S3. [Event Store blog]
  • Derek Comartin explains Event Sourcing on Code Opinion - Derek Comartin presents videos on a range of software architecture and design topics in his YouTube channel Code Opinion and on his Twitter feed. His videos are accessible and effective explanations of complicated topics and can improve your understanding of important concepts. [Event Store blog]
  • 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]
  • 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. Events are the source of truth. This has many advantages, such as: [Event Store blog]
  • What is Event Sourcing? - Event Store Blog - Event Sourcing is an alternative way to persist data. In contrast with state-oriented persistence that only keeps the latest version of the entity state, Event Sourcing stores each state mutation as a separate record called an event. [Event Store blog]
Permalink | From 05 May 2025 to 11 May 2025 | Last updated on: Sun, 11 May 2025 23:19:33 GMT

Week 18, year 2025

  • Building TMT Mirror Visualization with LLM - Creating a user interface that visualizes a real-world structure — like the Thirty Meter Telescope's mirror — might seem like a task that demands deep knowledge of geometry, D3.js, and SVG graphics. But with a Large Language Model (LLM) like Claude or ChatGPT, you don't need to know everything upfront. Unmesh Joshi describes how working with an LLM gave him a working prototype even when he's unfamiliar with the underlying tech. [Martin Fowler]
Permalink | From 28 April 2025 to 04 May 2025 | Last updated on: Wed, 30 Apr 2025 15:19:34 GMT

Week 17, year 2025

  • Additional explanatory material for the Deepseek Overview - A couple of months ago, my colleague Shayan Mohanty published a technical overview of the series of papers describing the deepseek AI models. He's now gone through that article, adding more explanations to make it more digestible for those of us who don't have a background in building these kinds of models. [Martin Fowler]
Permalink | From 21 April 2025 to 27 April 2025 | Last updated on: Mon, 21 Apr 2025 15:19:32 GMT

Week 16, year 2025

  • 10 problems that Event Sourcing can help solve for you - I recently ended up in a discussion on when Event Sourcing is the right architecture style or not. As the universal answer to this question tends to be "it depends," I started thinking about the typical problems where I would use Event Sourcing. I came up with a couple of them, some more functional and some more technical. Here's a summary of those thoughts. [Event Store blog]
  • AutoMapper and MediatR Licensing Update - In my last post, I shared the news that I've decided to take a commercialization route for AutoMapper and MediatR to ensure their long-term success. While that post was heavy on the motivation, it was intentionally light on the details. I did share that I wanted to be [Jimmy Bogard]
  • Announcing Axon Framework 5: Configuring Axon made easy. - Today we are officially launching the first milestone of Axon Framework 5.0.0, and needless to say, everyone here at AxonIQ is excited about the new release! For those who are unaware, Axon Framework has long been the default go-to solution for implementing event-driven microservices with Java and JVM-based systems. Now, with the release of Axon Framework 5, we aim to broaden the Framework’s capabilities while reducing complexity for both veterans and newcomers alike. We think that the best way to accomplish this (and to give the community time to adapt to the new APIs and paradigms) is to deliver the full release in milestones — continuing to make event sourcing easy! [AxonIQ Blog]
  • Announcing Axon Server 2025.0: Connecting to Axon Server made easy - AxonIQ is a company known for making Event Sourcing easy. This is why we’re happy to announce the launch of Axon Server 2025.0, which now includes robust support for bi-directional HTTP connections for all of your event-sourced applications. This literally means that you can now use any programming language to interact with Axon Server. This capability was originally called AxonIQ Synapse, but its previous implementations required developers to download an additional executable to run along with their Axon Server. Now, a fully embedded and configurable HTTP server is available within Axon Server 2025.0, so let’s talk about the implications of what that really means. [AxonIQ Blog]
  • Guiding an LLM for Robust Java ByteBuffer Code - AI editors like Cursor can generate code with remarkable speed using LLMs, handling boilerplate and providing functional snippets for various tasks. However, when building robust systems, functional correctness is only the starting point. Code must also be safe, predictable, maintainable, and free from subtle side effects. Unmesh Joshi demonstrates, through a dialogue between a developer and an LLM, how expert guidance is crucial to transform an initial, potentially unsafe code snippet into a robust, system-ready component. [Martin Fowler]
Permalink | From 14 April 2025 to 20 April 2025 | Last updated on: Thu, 17 Apr 2025 15:19:31 GMT

Week 14, year 2025

  • MediatR 12.5.0 Released - I pushed out MediatR 12.5 today: Release Notes NuGet This is mainly a regular minor release with a couple extra interesting features: Adding convenience method to register open behaviors Better cancellation token support (it's passed now everywhere including behaviors) And some other cleanup items as well. Enjoy! [Jimmy Bogard]
  • I've been kidnapped by Robert Caro - I've always enjoyed reading, and for most of my life I've particularly enjoyed reading history. I've head many great things about Robert Caro's books, but was deterred by their size. Finally, with his first book newly available as an ebook, I decided to dip my toes in. The books are too good for me to escape. [Martin Fowler]
  • AutoMapper and MediatR Going Commercial - Yes, another one of "those posts". But tl;dr: In order to ensure the long-term sustainability of my OSS projects, I will be commercializing AutoMapper and MediatR. I did not post this on April 1st for obvious reasons. But first a little background on how I got to [Jimmy Bogard]
  • Social Media Engagement in Early 2025 - A few years ago, whenever I published a new article here, I would just announce it on Twitter, but since the Muskover its importance has declined, and now I post updates to several services. To compare engagement on these services, I've looked at reposts, likes, and replies to two dozen of my recent posts. [Martin Fowler]
  • Updating yesterday's post on social media engagement - Some people asked about how many people clicked through the links on these social media posts. I've added some more to the article, partly to explain why I don't have that information, and partly to show overall source data for traffic to the site. [Martin Fowler]
Permalink | From 31 March 2025 to 06 April 2025 | Last updated on: Fri, 4 Apr 2025 23:19:32 GMT