
JasperFx Software is in business to help our clients make the most of the “Critter Stack” tools, Event Sourcing, CQRS, Event Driven Architecture, Test Automation, and server side .NET development in general. We’d be happy to talk with your company and see how we could help you be more successful!
Jeffry Gonzalez and I have kicked off what we plan to be a steady stream of content on the “Critter Stack” (Marten, Wolverine, and related tools) in the JasperFx Software YouTube channel.
In the first video, we started diving in on a new sample “Incident Service” that’s admittedly heavily in flight that shows how to use Marten with both Event Sourcing and as a Document Database over PostgreSQL and its integration with Wolverine as a higher level HTTP web service and asynchronous messaging platform.
We covered a lot, but here’s some of the highlights:
- Hopefully showing off how easy it is to get started with Marten and Wolverine both, especially with Marten’s ability to lay down its own database schema as needed in its default mode. Later videos will show off how Wolverine does the same for any database schemas it needs and even message broker setup.
- Utilizing Wolverine.HTTP for web services and how it can be used for a very low code ceremony approach for “Vertical Slice Architecture” and how it promotes testability in code without all the hassle of a complex Clean Architecture project structure or reams of abstractions scattered about in your code. It also leads to simpler code than the more common “MVC Core/Minimal API + MediatR” approach to Vertical Slice Architecture.
- How Wolverine’s emphasis on pure function handlers leads to business or workflow logic being easy to test
- Integration testing through the entire stack with Alba specifications inside of xUnit.Net test harnesses.
- The Critter Stack’s support for command line diagnostics and development time tools, including a way to “unwind the magic” with Wolverine so it can show you exactly how it’s calling your code
Here’s the first video:
In the second video, we got into:
- Wolverine’s “aggregate handler workflow” style of CQRS command handlers and how you can do that with easily testable pure functions
- A little bit about Marten projection lifecycles and how that impacts performance or consistency
- Using Marten’s ability to stream JSON data directly to HTTP for the most efficient possible “read side” query endpoints
- Wolverine’s message scheduling capability
- Marten’s utilization of PostgreSQL partitioning for maximizing scalability
I can’t say for sure where we’ll go next, but there will be a part 3 to this series in the next couple weeks and hopefully a series of shorter video content soon too! We’re certainly happy to take requests!