Jeremy Miller
Owner and CEO of JasperFx Software
Austin, Texas, United States
Actions
Jeremy Miller started his career as a “real” engineer but wandered into software because that looked like more fun. Since then, Jeremy has worked in and led software development teams in the computer manufacturing industry, finance, insurance, health care, and banking industries. Lately, Jeremy has been focused on leading software architecture teams and helping mentor other software architects. Having had roles both as an in-house software architect and as a software consultant, Jeremy has a great deal of insight into the challenges that confront companies developing and maintaining enterprise systems over time.
Jeremy is well known for his Open-Source Software tools starting with Structure Map and continuing today to Marten and Wolverine. Jeremy is also a frequent author and technical speaker at software conferences. Jeremy recently helped found JasperFx Software to build a sustainable business around the "Critter Stack" tools.
Area of Expertise
Topics
Automated Testing for Asynchronous Code
One of the absolute most challenging tasks in developing with an Event Driven Architecture is trying to automate testing through all your asynchronous system behavior. It's challenging sometimes to know when your test can move from "Act" to "Assert" when there's asynchronous behavior and messages firing. It's sometimes even more challenging to understand what's happening inside your system when tests inevitably fail sometimes.
In this talk I'll share the tooling, lessons, and strategies we've used in the "Critter Stack" community for testing effectively against asynchronous messaging and processing, controlling database state for reliable tests, predictably checking expected state even with asynchronous event projections and subscriptions, and all the things we've tried to build into our tools to help create visibility into just what's happening in test harnesses when messages and events are flying around your system.
Multi-Tenancy in Event Driven Architectures
In the course of building systems, you’re frequently going to have a single logical system that needs to serve different sets of users or clients. As a consultant and as the technical leader of the "Critter Stack" tools for Event Driven Architecture in the .NET ecosystem, I've seen a huge variety of approaches and requirements for multi-tenanted systems.
In this talk I'll compare and contrast several different approaches to multi-tenanted storage and messaging that we've had to accommodate for our community. We'll start with storage requirements in both a shared database and a database per logical tenant of course, but there's a lot more to that.
How do you detect the active tenant? How do you manage multi-tenancy through an asynchronous messaging system with minimal coding ceremony? Transactional outbox support across multiple databases? Low friction database migrations? What if you even need to isolate different tenants to completely different message brokers in the same system? And what if you need to support dynamically adding new tenants without any downtime?
These are all scenarios we've had to support throughout the "Critter Stack" and in this talk I'll share all the lessons we've had to learn to get there.
The "Critter Stack" is Marten (https://martendb.io) and Wolverine (https://wolverinefx.net). Marten is by far and away the most capable and most used Event Sourcing toolset in the .NET ecosystem. Wolverine is a little newer asynchronous messaging toolset, but has by far and away the strongest support for multi-tenancy in .NET because our users are apparently masochists.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top