Steve,

I was meaning the Pub/Sub pattern in general so there are many solutions.  I 
have just been using Google Pub Sub which I found very straightforward on Camel 
but look at the examples on Github as a starter. Also with the Google Pub Sub 
API you can programmatically define topics and subscriptions which might 
address Imran’s complexity (store in a config file/db Imran?).  Imran you might 
want to programmatically define camel routes if you have a lot of similar ones?

HTH.

O.


> On 11 Jan 2018, at 01:32, Steve973 <steve...@gmail.com> wrote:
> 
> Imran,
> 
> This seems like a complexity and maintenance nightmare.  You might want to
> rethink your approach for simplicity and maintainability.  I don't know
> your exact requirements and all of your use cases, but it might help if you
> can normalize and generalize a bit to streamline the process.  At the very
> least, I would rely on Camel to perform the routing and processing, and if
> you need a state machine, use something like StatefulJ and don't clutter
> your camel orchestration with it.
> 
> Owain, are you referring to the Guava EventBus, or Google Cloud Pub/Sub?
> 
> On Wed, Jan 10, 2018 at 1:35 PM, Owain McGuire <owain@integration.technology
>> wrote:
> 
>> Imran,
>> 
>> Have you thought of a publish/subscribe model where each topic triggers
>> multiple subscriptions.  Perhaps have a look at Google pub/sub component.
>> 
>> HTH.
>> 
>> O.
>> 
>> 
>>> On 10 Jan 2018, at 18:23, Imran Raza Khan <imranrazak...@gmail.com>
>> wrote:
>>> 
>>> Hi Steve,
>>> 
>>> Thanks for detail reply.
>>> 
>>> - I will evaluate StatefulJ if it fits into my requirements.
>>> 
>>>>> With Camel, I prefer to route a message, and then hand off the work as
>>> fast as possible, and then free up the routing to handle more messages.
>> To
>>> separate concerns, if the action being performed is not directly related
>> to
>>> one of the EIPs, then I would avoid performing it with Camel.
>>> 
>>> - I have more than 100 states and on every request on the base of
>> different
>>> criteria it select 10 to 15 states to be process. As from sample table
>> you
>>> can see mostly i required integration with different nodes on backend
>> like
>>> billing system, customer profile system, SMSc, catalog manager etc. My
>>> program infact take request and forward on base of state. Due to
>>> integration almost 6 to 7 backed systems with different protocols SOAP,
>>> REST, XMLRPC, SQL Procedures calls i choose camel.
>>> For some legacy nodes i suppose to retry multiple times so again camel
>>> support in this regard very well.
>>> 
>>>>> For better granularity, you can split up the process steps into their
>> own
>>> routes, which is what I would personally do.  Each phase (order
>>> creation, order
>>> placement, and order completion, notifications, etc) would include the
>>> error handling that you will want in your order placement chain of
>>> operations.
>>> 
>>> - In sample table i showed only couple of states otherwise we cant divide
>>> it into three categories as you mentioned, we have 100 of products and to
>>> order each we have different states and nodes to handle. in some case i
>>> only call 2 back-end nodes and for some scenario i have to call all 7 to
>> 8
>>> back-end nodes before final processing of order. Same product has
>> different
>>> prices and rules on base of customer profile.
>>> 
>>> Regards
>> 
>> 

Reply via email to