1)An external system can submit an event to our system. On every event we do some processing and store the event in a table for reporting purpose.
2)The incoming rate of events can be very high at times. May be 100s of events in a fraction of seconds.(Expecting millions over 3 to 4 hrs)
3)We can submit a request to the external system.
4)The external system can submit a response back.
I am thinking about using AQ for achieving the above.
1) Set up a queue"A" for events.
2) Queue A has two subscribers based on the event type, QueueA has to propagate(enqueue) to QueueB for Event Type 1, and QueueC for event Type 2.
3) Both QueueB and QueueC has plsql notification callback subscribed to it , which will run proc1 and proc2.
4) QueueB and QueueC both would propagate the previous message to QueueD which is responsible for post processing like logging to an archive table.
5) At the end I need not persist a message unless the processing failed at any stage,
I have an SGA_Target of 600m, the database uses ASSM, aq_tm_process is set to 1, we are on oracle 11.2.
I need to know if using a plsql call back will cause any problems in my design?