Neuron ESB User Network

The Service Bus for the Connected Business

Hi, I'm new to Neuron but not completely new to messaging concepts. I am not getting a clear picture of the best 'Neuron way' to implement this scenario:

An application wishes to make a request of another system asynchronously and expects a reply. There's a defined timeout for getting the reply (could be days long) and the requesting app should be informed if the timeout occurs, thus 'failing' the attempt.

Forget about the message formats for a moment... could be POX or whatever.

So the primary success scenario is something like this:

App1 issues an asynchronous request to App2 and immediately gets a recept of some kind to eventually match to the reply message. App2 processes the request within the SLA timeout and posts a reply message, asynchronously, back to App1 with the receipt id somehow attached or embedded.

What is the simplest Neuron configuration that could accomplish this? Would I have to embed the receipt identifyer in the message myself, or is there a way to attach this to Neuron's message header?

Thanks!
Richard

Views: 27

Reply to This

Replies to This Discussion

Purely asynch with correlation in headers would be the most natural if you wanted one party to take action in its on receive that was a "response" to a message it had published earlier for something that went over days.

You could use the custom properties in the message header for the correlation values.
Ok, that's cool. Is this something you've seen before - any recommendations about the way to strucure the topics and parties in a situation like this... for example, let's say it's a simple CRUD type request for creating an account. Would you have a Topic/Subtopic hierarchy like so:

Accounts (Topic)
Accounts.Create.Request
Accounts.Create.Reply

Or would this be better split up in another way? I ask because I think you may have some reason why we would want to do it one way or another.
I think that's fine.

I use subtopics a lot for segmenting operations or for Service Connectors that respond to a Client Connector On Ramp.

You can align your subtopics with either operations or with states and that should work out well.

When it comes to long running operations I'm a much bigger fan of completey asynchronous messaging with with either context based (headers) or content based correlation.

I bought into state based engines for a while until I saw what happens under load and trying to debug complex compensation scenarios.

There's also the whole loosley coupled aspect...There's really nothing loosely coupled about state based engines...They need to maintain control of all aspects of processing otherwise they can't guarentee dehydration and rehydration, transactions, etc...

On the other hand, shuttling things asynchronously and managing persistence with an independent data store that also holds state transition information that allows you to know the next or previous step in a process or even store a complete state transition history is very scalable and will allow you to add functionality quickly.

You won't drag and drop your way there with the design tools many state based engines provide but you'll be able to add functionality, custom reporting, or switch out the backing store database (or even use multiple databases) much easier than if you start with a state based tool.

RSS

Neuron ESB Product Support Forums and Communities

Latest Activity

Nick Novotny posted a discussion

Script to stop/restart service connectors

Is there a way to turn on and off service connectors through the neuron api?  Right now I need to go to Endpoint Health in Activity, and right click to stop and restart service connectors, I would like to have a script to do this.  Is this possible? Thanks,-Nick NSee More
May 11
Profile Iconsuresh datla and Mahboob joined Neuron ESB User Network
Apr 24
Nick Novotny posted a discussion

Msmq network transport error logging

We have multi-casting one way messaging through a remote msmq server using wcf services for our system. One day one of our many environments got a message to multicast…and didn’t send anything out.  We have a pipeline step to audit the incoming message, topic properties to move msmq messages to a dead letter queue after a specific amount of time, and a service policy to move messages to the failed neuron db table after a specific amount of time/retries (matching the msmq network properties to…See More
Apr 13
Stas Makutin posted a discussion

Load-balancing using Neuron

I want to implement following scenario using Neuron ESB:- get big list of working items from somewhere (let's say some database)- split this list to small "batches" of working items- send these batches each to particular instance of specific subscriber (Worker), so each that instance will process assigned batch in parallel with other instances- collect feedback (is processing complete/failed) + implement some fail-over mechanism (resend failed batches, monitor if batches weren't processed…See More
Apr 11
Profile IconStas Makutin, Bjorn Thomsen and Steve Harclerode joined Neuron ESB User Network
Apr 11
MH is now a member of Neuron ESB User Network
Mar 29
Profile IconCraig Muir and mehnaz joined Neuron ESB User Network
Mar 12
John Ryan posted a discussion

Trouble creating a net.msmq Client Connector

Has anyone successfully created a Client Connector using Net.msmq?I'm trying as many different configurations as i can to post a message to a Client Connector but i get the following error on my client app:"The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state."It looks as though my client connector endpoint is not binding to the WAS correctly.If anyone has any ideas, i'd love to hear them.Here are my Client…See More
Mar 6

Badge

Loading…

© 2012   Created by Neuron Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service