Budget: 25 USD Deadline: 1 day
Good day!
My name is Yaroslav, I am an employee of Devoxen. We have extensive experience working with integration processes based on Oracle SOA / BPEL, asynchronous calls, queues, and high-load systems.
Regarding your example:
1. Logic issues:
— catchAll calls retryServiceA without checking the successful execution of ServiceA → risk of duplicates
— correlation only by businessId → possible conflicts with parallel instances
— lack of idempotency control
— no timeout / handling of situations when the callback does not arrive
2. Where duplicates/locks occur:
— duplicate: ServiceA executed, but due to an error, a retry occurred → double processing
— lock: receive callback, if the callback is lost / not correlated / arrived earlier
— queue growth due to uncontrolled retries and lack of limits
3. Solutions (briefly):
— add idempotency (businessId + messageId)
— clarify the correlation set and exclude parallel instances
— separate technical and business errors (remove blind catchAll)
— add timeout, retry policy with limits, DLQ
— check JMS settings, transactions, and dehydration store
We work with the stack: Oracle SOA Suite, BPEL, JMS, REST/SOAP, PostgreSQL/Oracle DB, monitoring and logging systems.
I suggest moving to private messages to discuss the details of the audit.