![]() ![]() Nonetheless, the new architecture is working out wonderfully and the code is nicely separated by concerns. It turns out that rewriting an entire code base takes time and attention. It has been nearly six months since the first alpha of MassTransit v3 was released, and a lot of progress has been made. MassTransit v3 Update Chris Patterson - 16 June, 2015. The events are simple interfaces, one for an item being added to the cart and another for when an order is submitted. My UI chops are terrible, but what a beautiful web site the template generator creates! The CartController is the majority of the work here. These would be produced by the web application, so a Shopping.Web site was created in the sample. The Observed EventsĪ few events are needed to allow the cart activity to be observed. ![]() The sample was built using MassTransit, RabbitMQ, and Automatonymous, as well as using Entity Framework to persist the state of the state machine and using Quartz to schedule the timeout event. Once the cart was abandoned, a separate event would trigger a process to send the user an email asking them to come back and spend some of those hard earned dollars on some swag. The idea is that through purely observing the events of a shopping cart, an external system could determine when a potential customer has added items to their cart only to abandon the cart after a period of time. TL DR – Go to the Sample Code The General Idea While a general solution can be extracted from the subject matter, I wanted to see how the same approach could be taken using an Automatonymous state machine and MassTransit. The use case demonstrated is fairly common, particularly if you generalize the solution. It was a Friday.Ī few weeks ago, there was a post on how to use a saga to coordinate the business requirement of sending an email when a shopping cart is abandoned by a user. Sagas, State Machines, and Abandoned Carts Chris Patterson - 11 September, 2015.
0 Comments
Leave a Reply. |