In my last post I showed how to deploy endpoints and to subscribe for events. In this post I’ll cover how to send commands and what ServiceMatrix does for you under the hood.
In order to send a command we apply apply almost the same steps as when publishing an event. We create two undeployed components named AscensionManagement (the sender of the command) and RecruitementOffice (the receiver of the command). The command is we want to send is called AscendToHeaven (number 2 in the overview picture).
In my last post I showed how to create a service and a publisher. In this blogpost I will show how to subscribe to messages and how to deploy components to endpoints. In my blogposts about CompositeUI for Service Oriented Systems I called about services or “things”. I don’t cover that theory here. I encourage you to read those blogposts.
Before we can deploy the undeployed component WarehouseRaid we need to create a hosting component for that. This can be done by clicking on “New Endpoint”. In this step we are creating Earth and Heaven as NServiceBus Hosts. There are other endpoint types like MVC site available. For the R.I.P.D sample we are building here, a NServiceBus host is sufficient enough.
In my last post I talked about the particular service platform and how close it is being released. This time I can happily say that it has been released! The particular team did its magic and pushed the whole platform out. You already got a sneak peak at the installation process. This time I will cover ServiceMatrix and show you how easy it is to build a distributed system based on NServiceBus with ServiceMatrix. The sample I will use throughout the blog posts is based on the Hollywood movie Rest in Peace Department.
The film was released in 2013 and directed by Robert Schwentke based on the comic book Rest In Peace Department by Peter M. Lenkov. The protagonist Ryan Raynolds as Nick Walker is a detective from the Boston Police Department which gets killed during a raid on a warehouse. After ascending to the limbo in the afterlife Nick is taken into the office of Mildred Proctor / director of the Boston divison of the Rest In Peace Department (R.I.P.D). Proctor explains that R.I.P.D. is an agency that recruits deceased police officers to patrol the afterlife and capture “deados”; spirits that failed to cross over and instead stay on Earth as monsters. Nick agrees to join R.I.P.D. and gets sent back to Earth with his new partner Roy Pulsipher, played by Jeff Bridges. Continue reading
You have already heard me talking or at least read a blog post about NServiceBus from me 😉 The next big release from particular software is just around the corner! This time it is not just another version of NServiceBus. No, it is a whole platform or toolset you can use to build up complex distributed systems based on NServiceBus. I give you a brief overview over the platform and then dive into ServiceMatrix. Let’s get started! Continue reading
This is the handout for the presentation I gave at the Basta Conference in Darmstadt. The talk is about different transports available for NServiceBus. Building distributed systems with NServiceBus which only use MSMQ was yesterday. Today we have more possibilities to choose the right transport technology. But how do I decide which transport layer fulfills my functional and non-functional requirements? What is the difference between MSMQ and RabbitMQ? How does a broker based transport differentiate itself from the store and forward transports? Which consistency guarantees do I get from the different transport technologies? In this talk we dive into the pros and cons of the different transports available for NServiceBus, primarily MSMQ, RabbitMQ and ActiveMQ. Why does the transport technology even matter? Continue reading
I’ve heard that question a number of times during my projects and consultings I did for several customers. Normally that generic answers can only be properly answered with information about the non-functional requirements and Service Level Agreements a certain project has to fulfill. Without knowing about your specific situation it is generally difficult to give hard numbers about the performance you can expect with a single NServiceBus endpoint. But what exactly can influence the speed of a single endpoint?
Many of the developers diving into the world of distributed systems are looking for a library or framework, which helps them to get started quickly. Usually they seek a better replacement for their existing Remote Procedure Call Technology. NServiceBus seems to fit into that space and offers a whole new world to discover. However, NServiceBus is more than just a framework! It incorporates in its core many years of experience building distributed systems and has been adopted throughout the globe in many .NET environments.
David Boike not only introduces the knowledge how to get started with NServiceBus but also how build up future-proof distributed systems by leveraging the experience built into the framework. It starts with a getting started sample, which gets you up to speed in a few minutes. From there on the reader is taken to a journey about Commands, Events, Fallacies of Distributed Computing, Eventual Consistency and embracing failures by making your application code fault tolerant. With this knowledge in the tool belt, the reader learns to take advantage of the extensible API NServiceBus offers. Get ready to tackle advanced messaging scenarios! Know it, learn it, and love it!
Every now and then people get confused when they try to use the NinjectObjectBuilder for NServiceBus. In this blog post I want to describe the purpose of the NinjectObjectBuilder for NServiceBus and highlight the difference between Ninject and Ninject together with NServiceBus.
Yes you hear right! That is one of the major upcoming and most exciting new feature which will be available in NServiceBus 4.0.0. Transports, transports and transports… NServiceBus out of the box supported MSMQ and also Azure transports. But now there are even more transports available! The 4.0.0 version will ship with the following transports on board: ActiveMQ, RabbitMQ, Sql Server, Azure and MSQM. Of course each transport comes with certain features or even restrictions but from now on you have a lot of choices depending on your infrastructure or interoperability needs. In the future blog posts we will dive into at least one of the transports mentioned above and deep dive what it offers compared to the other transports. But first I want to show you how you can configure each transport with the unified configuration/connection settings approach.
The configuration API has changed significantly. I updated the post.
I hope you all read the blog post about the serializer changes regarding raw xml embedding. In this blog post I want to show you an important interoperability feature which has been introduced in NServiceBus 4.0.0. You have now the possibility to define whether NServiceBus wrapps the serialized messages or not before passing it into the transport layer. Why is this important for interoperability?