We have two applications - One is open to consumers to browse and purchase the product. The product is the online course and in response to customer order they get an account to login credentials of other application where they can log in and use that course.
Contemporary, when consumer place an order application submit a SOAP to another application web service which creates the required credential for the customer and in response tell the other one that order 'has been processed successfully' and a receipt got print where there always a link to get log in to other system seamlessly.
This integration has some issues:
- If do maintenance of the other system which receives order via web service and create credentials till than all sales get halted
- No fault tolerance - Assume all system nodes got unavailable or some because of some intermittent network issue both systems unable to communicate or the web service unable to communicate with the database server then order started to fail
- Need to improve Transaction Management
- Need to improve Exception Management
And, the improvement desire:
- Maintenance period of the portal that has order web service does not effect the order. Instead, order started to queues and once the portal get back to live all queued order started to process
- The order transaction in the (portal) web service which creates credentials of the customer should be build around well-defined transaction (design) pattern
- Good Exception Handling that would improve the communication between two systems
At the end both systems integration get improve and the most important issue which is order failing completely get resolved.
I'm not too familiar with EIP or Messaging Services or Service Oriented Architecture. Neither I've much time to build my concepts and then prepare a solution to address the issue. I've started to read all these topics but I need some quick assistance or better to say an architectural solution to address this issue and make this integration more scalable and reliable.
Thanks.