![]() ![]() Source Code Sample-CourierĪ complete sample for using Courier, the Routing Slip implementation that is included with MassTransit. Sample-RequestResponseĪ complete request/response example, leveraging the IRequestClient to encapsulate the configuration and endpoint mapping, keeping the requestor code clean and simple. There are a couple of complete samples that demonstrate how to use MassTransit in a variety of scenarios. If you are ambitious and ready to get started with the latest and greatest, I highly recommend pulling down the most recent pre-release packages and taking them for a spin. The majority of the functionality is working very well, including Azure Service Bus. Really, it’s just a lot of exception and sad-path testing at this point. The exception handling pipeline needs to be well tested and verified, including adding context to the messages in error queues. There are a few more things to wrap up before making MassTransit v3 ready for the primary NuGet feed (it’s currently hidden behind the pre-release flag). There is probably some tuning and adjustments yet to be addressed, but it’s super sweet so far. The repository has also been redesigned to support composition and middleware, as well as full async operation, making it a clean and consistent implementation - on par with every other type of message consumer. To make creating new saga repositories easy, the actual behavior required by a new saga implementation is reduced to two methods. X.Handle(context => Console.WriteLine()) To support the transfer of big messages (those messages with large byte arrays or strings), MassTransit now has the ability to send and receive message data outside of the message body.Ī couple of standard repositories are available (in-memory, and file system) with more to come, including Azure Blob Storage and perhaps Amazon S3. And there are some brokers that just can’t deal with big messages (cough, Azure Service Bus, cough) at all. External Message Data Storageīig messages are inevitable, and big messages can really clog up the works making small message suffer. There have been several tasty new features added as well. The past six months have not been entirely about stabilization of the code. More filters will be coming, but an initial release has to happen at some point… Some New Features ![]() ![]() The middleware injection is extensive, and new filter can be created easily to support many advanced use cases such as rate limiting, concurrency restriction, and asynchronous transactions. However, it’s not that bad.Īt every layer, MassTransit has been built around the TPL, leveraging async/await for the best performance, and providing pipe and filter composition at every possible extension point. Add to the mix the fact that many third-party assemblies were not designed for asynchronous invocation, and the resulting cesspool is quite a mess. That being said, knowing the exact behavior of the language constructs, and how the compiler translates the keywords is very important. NET 4.0), followed by the addition of async/await (in C# 5) has made the creation of asynchronous code clean and concise. 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. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |