Senior Software Architect, Calavista Software
Jeremy Miller is the Senior Director of Software Architecture at MedeAnalytics. inc. Jeremy began his software career writing “Shadow IT” applications to automate his tedious engineering documentation, then wandered into software development because it looked like more fun. Jeremy is heavily involved in open source .NET development as the lead developer of Marten on the other JasperFx projects.
Session Title: Concurrency and Parallelism in Real Life Development
Using the event sourcing support in the Marten library as a real world example, we’re going to look at strategies to handle potential concurrency issues within our server side applications. We’ll examine the usage of offline optimistic locking, serializable transactions, and very carefully use offline pessimistic locking.
Doing a deep dive into Marten’s asynchronous event projection processing, I’ll show some strategies for parallelizing work through the producer/consumer pattern. We’ll also examine how Marten parallelized work through data sharding, leader election, and work assignment throughout an application cluster. Just to make things harder, we’ll also talk about the necessary instrumentation and error handling it’s taken to keep all that parallel work synchronized in the face of intermittent errors.