In the company where I work, we need to integrate our desktop system, which has a local database with a system that will be running on a cloud server. Our scenario is 2000 clients performing asynchronous integration.
The back-end application will expose integration services using rest.
Our customers will have an application that performs scheduled tasks consuming integration services.
The question is whether to use a Middleware or not:
Option 1: The Client application directly consumes the back-end services.
Option 2: Use a Middleware application, where the client system consumes a single service that adds messages to an integration queue. Middleware is responsible for consuming the queue and integrating with back-end application services.