The basic premise of the Emesary messaging system is to allow the decoupled operation of the various components that comprise any system - usually within the same process. The basic unit of communication is a Notification, which is passed around to any and or all objects that implement the IReceive interface. Using Interfaces and ihneritance it is possible to pass around Notifications that have special meanings to certain objects and allow them to perform the appropriate function. In our design Notifications are created and sent via a call to NotifyAll. Any object within the system can implement the IReceive interface and register itself with either a Queue (WIP) or a Transmitter to receive all notifications that are sent out. The underlying concept is that one part of a system knows that something needs to be done without needing to know how to do it. The part of the system that needs something done simply creates a notification and sends it out. Once received by the part of the system that is capable of performing the requested Notification the relevant actions will be carried out and a status of OK or Finished returned. See the section on return codes for a complete explanation of these codes and what they mean. ref.
Project Url
View on NuGet:


Here are the packages that version of Emesary depends on.

No dependencies



Installing with NuGet

PM> Install-Package Emesary

Packages that Depend on Emesary

PackageLatest VersionTags
EmesaryMSMQBridge Emesary MSMQ