First of all Merry Christmas and a very Happy new year..
We want to introduce a notion of job management where each job is composed of processing code behind Channels frontended by a persistent Queue(most probably RabbitMQ)
As an example
Say we have 2 channels each behind a different queue..Now the job is completed when each channel executed successfully.
If say one channel execution fails(it will have a retry mechanism) and finally abort if retry fails..When we abort we push message to a DLQ(Dea letter Queue)
Now from a UI which we will develop we should be able to monitor jobs(I am thinking message itself is the job as it contains the execution context itself)
So if say a job has two Channels(A and B ) and B has failed..From Ui we should be manaully able to restart execution from B itself..
In that case message will be pulled from the DLQ and pushed to the Queue which has listener for processing action B..
I think by using this architecture we achieve reliability as well as dynamic behaviour by introducing more Channels and wiring them through SI
Is this a good/valid idea or do u suggest anything else..
Thanks and Regards
Shashank


Reply With Quote