Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The complexity of the back end will be increased each time it needs to talk to another service, e.g. Self Service for Form Rs or future GMC Connect APIs.

Alternative design featuring a bespoke controller

...

View file
nameMessageRoutingWithController.drawio

Adding a bespoke controller to the design will allow the orchestration between different services to be abstracted from the back end. The controller would be responsible for splitting requests between the data providers and aggregating the responses before the reply goes back to the client.

The controller could be a micro service or, possibly, a Lambda function.

...

Long term design featuring a message broker

...

View file
nameMessageRoutingWithBroker.drawio

Rather than write a bespoke controller the, orchestration In the long term, integration could be performed using an off the shelf product, such as AWS MQ and Apache Camel.

AWS MQ supports integrates with Apache Camel and can be used to provide a sophisticated message broker service which supports multiple messaging patterns out of the box. Implementing this solution will de-couple micro-services from each other, allowing greater flexibility when it comes to changing existing services or adding extra services that need to be consumed.

With our current, envisaged configuration there would be very little custom code required to be written for the integration service. Most of our requirements would be handled by configurable settings in Camel.This solution is the most flexible when it comes to adding extra services that need to be consumed.

Single request/response timeline

...

View file
nameMessageRoutingTimeline.drawio

...