
The two http components ('Gateway' left hand side) are HAPI RestFul servers (running in a docker container - not hapi overlay's as shown in the diagram), as is the FHIR 'application' server. All are logging to ELK stack. Design is scalable so we could have multiple FHIR gateway and application servers.
So when a call comes in, it will be processed by the gateway and then sent to the application server. The reasons for the gateway:
- reduced capability statement (the server supports more than the gateway)
- support multiple security standards (server supports just one)
All components create log entries (in ELK) and so we get multiple log entries for every call coming in. So to assist with fault finding (and audit) we're planning to use a correlation identifier across the micro-services. We would introduce this correlationId in the the gateway, earlier in the stack the better [If we do this in apache camel (which is in the gateway), we don't cover all incoming calls such as when the default exception handler has rejected the call].