A lot of times I'll see this pattern in web services calls bool DoSomething(SomeObject foo). Usually, when I dig in there's not any actual code that returns false...If an exception is thrown then it never gets to "return true".
Other times they will switch the return value to void but still refuse to mark the contract as one way.
What's at the root of these behaviors? Distrust. Basically, there is a complete distrust of asynchorous operations and processes.
Which is weird when you think about it...We do tons of stuff every day that's meaningful and asynchrous. Ever do a transfer with a bank online and all you see when you navigate to the next page is a message saying thanks, we'll get to it! Ever use an event handler? Ajax? Email? Heck if you ask me email works too well..
Now some of the clever among you who have this distrust syndrome may say things like "Whoa! SMTP has all kinds of handshakes!"..My reply is don't pretend you think about those and don't pretend you use BeginInvoke and EndInvoke to make your own programs that invoke blocking operations more responsive.
Yet, you'll fire off your emails and if the server accepts your message you go about your business and trust that eventually you'll be answered.
Not only that but you trust you can send them to DL which is an abstraction of any number of people many of whom you don't know at the time you send the email...That abstraction should sound familiar to Neuron users.
I don't know about you but I literally can't remember the last time I sent a meaningful email that wasn't answered. It may not have been answered as fast as I wanted it to be but it was answered.
So how many processes in your organization could work the same way? How many really need to block everything?
Do me a favor, the next time you get to build a solution start with a simple rule. All Client Connectors and Service Connectors will use Datagram and proxies and services will be marked one way...
I think you'll surprise yourself by all the cool things you'll figure out can be done under these restrictions and how easy it is to add new steps to the process...All you'll need to start is a little trust...