Addressing intersystem differences
In Chapter 7, Bridging Intersystem Gaps, we covered the External Service Gateway (ESG) pattern. We deploy ESG services to multiple regions just like other autonomous services, but with one major difference. ESGs interact with external systems that may have different architectures with different regional approaches. The purpose of an ESG is to encapsulate these differences so that they do not corrupt the rest of the system. However, addressing these differences is a multi-dimensional problem that can make your head spin as you consider the challenges from all angles:
- There is the perspective from your system and from the external system's.
- Whether the flow is egress or ingress from your system's perspective.
- Will your system be using a push or pull technique?
- Is the regional disruption on your side or their side or both?
- Is the external system in the same cloud, a different cloud or on-premises?
- Is its topology primary/secondary or active/active...