Microservices in C# Part 2: Consistent Message Delivery