External interfaces are especially sensitive to problems or risks, often functionality or availability of your system depends on some of these external interfaces.
Problems or risks associated with external interfaces therefore need special attention or countermeasures - so it’s a great idea to explicitly show those risks or problems in the context view.
Below you find some examples of risks or problems that might occur at external interfaces:
- Availability risk: if external systems are down: an external system heavily influences the availability of your system.
- Cost risk: the usage of an external system is expensive, individual calls or other types of use cost money. Examples are credit card checks or payment/booking services.
- Security risks: you receive/send sensible data from/to external systems. That could make these interfaces particularly interesting for a potential attacker.
- Volatility (high probability of change) of external systems: Interfaces of external systems are changed often (they are “work in progress”). The syntax and semantics of the transmitted data could be changed on short notice, which means that you either have effort adapting to these changes or you need to develop a flexible consumer for these interfaces.
- Complexity risks: using this interface is exceptionally complex or difficult, because it might have complex data structures, uses esoteric frameworks, complicated handshakes or an arbitrary mixture of those.
It can be useful to use either color or iconic symbols to indicate risks. Always explain these risks in the table accompanying the context diagram.