
At least professionally, I tend to be mostly focused on what’s next on the road map or upcoming client work or long planned strategic improvements to the Critter Stack (Marten and Wolverine). One of the things I do every year is to write out a blog post stating the technical goals for the OSS projects that I lead, with this year’s version, Critter Stack Roadmap for 2026 already up (but I’m already going to publish a new version later this week). I’ll frequently look back to what I wrote in the previous January and be frustrated by the hoped for initiatives that still haven’t been completed or even started. All the same though, 2025 was a very productive year for the Critter Stack and there’s plenty of accomplishments and improvements worth reflecting on.
JasperFx Software in 2025
JasperFx Software more than doubled our roster of ongoing support clients while doing quite a bit of one off consulting and delivery work as well. The biggest improvement and growth is that I’ve stopped fretting on a daily basis about whether I gambled my family’s financial well being on an ego driven attempt to stave off a mid life crisis and started confidently planning the company’s future around what appears to be a very successful and promising technical toolset.
Along the way, we helped our clients through interactions on Discord, Slack, MS Teams (I’m not yet a fan), Zoom, and GitHub. Common topics for Critter Stack usage included:
- Designing long lived workflows
- Event Sourcing usage
- Resiliency strategies of all sorts
- Multi-Tenancy
- Dealing with Concurrency. Lots of concurrency related issues
- Test Automation
- Quite a bit of troubleshooting
- Instrumentation
If you would like any level of help with your Critter Stack usage, feel free to reach out to sales@jasperfx.net for a conversation about what or how JasperFx could help you out.
Marten in 2025
2024 was an insanely busy year for Marten improvements, and after that, I feel like there just wasn’t much lacking anymore in Marten’s feature set for productive event sourcing. You can definitely see Marten development slowed down a bit in 2025. Even so, we had 16 folks commit code this past year — with far more folks contributing through Discord discussions and feedback in GitHub issues.
Some of the highlights were:
- Marten turned 10 years old!
- This has been a continuously rocky voyage, but we greatly improved Marten’s support for testing asynchronous processing with new helpers. A lot of folks contributed to that over 2025.
- For a JasperFx Software client, we enabled
Inline“Side Effect” processing - Marten 8.0 dropped at the first of June, which included:
- A big consolidation and reorganization of the shared dependencies underneath Marten and Wolverine
- A lot of improvements to Marten’s Projections API including much better (we hope) options for writing explicit code and a streamlined API for “event slicing and grouping” in multi-stream projections
- JasperFx Software built the Stream Compacting feature for our largest client as a mechanism to keep a busy system running smoothly over time by keeping the database size relatively stable
- Anne wrote a new tutorial for using Marten as an event store in systems
- We added a lot more support for strong typed identifiers in different usage scenarios to Marten throughout the year. I won’t claim there isn’t still some potential problems out there, but dammit, we tried really hard on that front
- JasperFx Software added the ability to alter event metadata on an event by event basis for one of our clients. That same 8.4 release added user name tracking to event metadata
- Again in collaboration with JasperFx clients, we added far more metrics publishing to understand the Async Daemon behavior in production
- Switched Marten from the venerable TPL DataFlow library to using System.Threading.Channels. I was very happy with how smoothly that went after the first day of toe stubbing.
- Event enrichment hook in aggregation projections for more efficient processing. That was a long missing feature — but this is getting some additional improvements in the next couple weeks
After saying that I felt like Marten was essentially “done” at the beginning of this section, I think we actually do have a pretty ambitious set of enhancements for Marten projection support and cross-document querying teed up for early 2026.
All the same though, I’ll stand by my recent statements that Marten is clearly the best technical tool for Event Sourcing on the .NET platform and competitive with anything else out there in other ecosystems.
Wolverine in 2025
Buckle in, this list is much longer and I’m only going to hit the highlights because Wolverine development was crazily busy in 2025:
- Wolverine had 66 different people contribute code in 2025. Some of those are from little pull requests to improve documentation (i.e., fixing my errors in markdown files), but that number dramatically undercounts the contribution from people in GitHub issues and Discord discussions. And also, those little pull requests to improve documentation are very much appreciated by me and I think they definitely improve the project in the whole.
- Lots of improvements to Wolverine’s support for Modular Monolith architectures
- Yet more support for strong typed identifiers. Curse those little maggots, but some of you really, really like them
- Wolverine 3.6 was a huge release that included the declarative persistence helpers that leads to much simpler application code
- Wolverine 3.13 improved Wolverine.HTTP with
[AsParameters]binding support - Wolverine 4.0 brought the consolidation of shared dependencies with Marten as well as Multi-Tenancy through separate databases with Entity Framework Core (for a JasperFx client).
- More Wolverine transport options support the “named broker” approach such that you can connect to multiple Rabbit MQ brokers, Azure Service Bus namespaces, Kafka brokers, or Amazon SQS endpoints from one system
- Wolverine got much better support for “hybrid” HTTP endpoint/handler combinations (in collaboration with a JasperFx support client)
- JasperFx working with another client improved the usability of F# idioms with Wolverine
- Quite a few improvements to the tracked session test automation helpers in Wolverine as a result of multiple JasperFx client engagements
- Wolverine 5.0 was huge, with the Partitioned Sequential Messaging being my pick as the most important new feature
- New messaging transport options including GCP Pubsub, SignalR, Redis, an HTTP options, and a NATS.io option ready to go in the first release of 2026. Dang.
And there was a massive rush of activity at the end of the year as I scurried to address issues and requests from recent JasperFx clients for yet more resiliency, error handling, instrumentation, and inevitably some bugs. I’ll be writing a blog post later this week to go over the new additions from the US Thanksgiving holiday through the end of 2025.
I guess the big takeaway is that Wolverine improved a lot in 2025 and I expect that trend to continue at least during the early part of 2026. I would argue that regardless of exactly how Wolverine stacks up on features and usability compared to other options in .NET that Wolverine is improving and innovating much faster than any of its competitors.
Me in 2025
I’m maybe working at a bit of an unsustainable pace for the longer term, but I think I’m good for at least one more year at this pace. At the end of the day though, I feel extremely fortunate to be living out my long term professional dream to have my own company centered around the OSS tools that I’ve created or led.


