The Critter Stack runs production systems in finance, healthcare, logistics, IoT, and more. Here is what the people building those systems say, and what it looks like when a team brings JasperFx in to help.
Jeremy's Critter Stack workshop didn't just level up the team that attended it - the recording became day-one material for every new developer who's joined since. Hard to find engineering training that's still paying dividends two months later.
Critter Stack libraries are some of the most mature libraries I've ever used and their feature set and integration is perfectly tailored for real world problems to solve.
The ease of implementing event driven and nosql support is what I value the most. Not having the struggle of making different frameworks play well together to get the same functionality is both time, and therefore, cost saving.
I love the simplicity you get in the end. There is a learning curve as you need to unlearn things and change your way of thinking, but in the end you will get very low ceremony code that is easy to reason about. You can read the business intention. The [AggregateHandler] as both a Decider implementation and an example of A-Frame is just beautiful!
I started small - a bit of Alba for testing, a little Marten for documents, Wolverine as a mediator, and as the complexity of my applications have grown, I've only leaned in more on the Critter Stack. The developer experience of these tools is amongst the best in the industry. My code is better than it has ever been - clearer, easier to reason about, and with the excellent support for event sourcing, I'm amazed how often my customers sheepishly ask for something they anticipate will be challenging, and I actually have to reassure them it won't be - nice change! I never feel backed into a corner with these tools. My code grows and adapts in pace with the businesses I support.
Most of the work we do with clients takes one of three shapes. Here is how each one typically runs, from the first call to the handover.
A system that has grown hard to change. Adding features takes longer every quarter, the data model no longer matches how the business talks about its work, and the team wants to move to Event Sourcing and asynchronous messaging without a big-bang rewrite.
We start with an architectural review, then design a phased migration using Marten for the event store and Wolverine for messaging, with the old and new systems running side by side. We pair with your developers on the first slices so the patterns are learned by doing, not by reading.
An event-sourced core your team can extend on its own, a migration path for what is left of the legacy system, and developers who understand Event Sourcing and CQRS well enough to teach the next hire.
An application built on Marten or Wolverine that was fine at launch and is now struggling. Queries have slowed, projections are falling behind, message processing lags under load, and nobody can see exactly where the time goes.
We review the projection design, query patterns, and messaging configuration against what production actually does, then tune alongside your developers: indexes, batching, async projections, endpoint settings, and the scaling levers built into the tools. CritterWatch goes in so you can watch the effect, and catch the next regression before your users do.
Throughput and latency back where they need to be, a short list of the settings that mattered and why, and monitoring that turns the next problem into a ticket instead of an incident.
A team building a distributed system with real messaging requirements who needs confidence that a crashed node, a dropped broker connection, or a bad deploy will not lose data or leave the system inconsistent.
We work through the failure scenarios with your architecture: retry and circuit-breaker policies, dead letter handling, the transactional outbox and inbox, idempotent handlers, and the deployment story. Usually this runs as a workshop with the development team followed by a review of the implementation.
A production system that recovers from the failures you planned for and tells you about the ones you did not, and a team that applies the same resilience patterns consistently as the system grows.
We are writing up detailed case studies with the teams involved. If you would like your Critter Stack story told here, get in touch.
Whether you are migrating to event-driven architectures, scaling an existing system, or starting a new project - we can help.