Why interfaces need their own control

In a project with several suppliers and systems, each interface sits between teams who each assume the other has taken care of the difficult parts. Unless an interface is specified, owned and tested as a unit, problems appear late, at integration, when changes are most expensive.

Keep an interface register and a specification for each

List every interface in one register: source, destination, purpose and owner. For each, maintain an interface specification with the attributes below.

Interface specification contents
AttributeWhat to define
Source and destination systemsThe systems and their environments (test, production)
Data ownerThe role accountable for the data and for resolving disputes
Data formatSchema, field definitions, units, code lists, character set, time reference
FrequencyReal-time, batch schedule, or event-driven; expected volumes and peaks
SecurityAuthentication, authorisation, encryption and credential management
Error handlingWhat is validated, what is rejected, how rejections are reported
Retry logicWhen and how often to retry, back-off, and when to stop
LoggingWhat is recorded at each end, and for how long
MonitoringHealth indicators, thresholds, alert owners
ReconciliationHow counts or values are compared between systems and discrepancies resolved
Change managementVersioning, notice period, testing before change

Assign ownership at both ends

Each interface has a named owner on both sides, and a named owner of the data it carries. Faults are traced jointly by agreed methods, starting from the logs at both ends.

Design for failure, not just the normal case

  • Make processing idempotent where possible, so that a retried message does not create a duplicate.
  • Use retries with increasing delay and a limit; move messages that repeatedly fail to a holding queue for investigation, rather than discarding them.
  • Define behaviour when the destination is unavailable: queue, buffer or reject.
  • Use a single agreed time reference and record timestamps with time zone.

Control change

Version every specification. A change to either end is raised as a change request, assessed for impact on the other, tested in a non-production environment and scheduled. Unannounced change by one party is the common cause of interface failure in service.

Test the abnormal as well as the normal

  • Normal transactions at expected and peak volume.
  • Invalid, duplicate, delayed and missing data.
  • Destination or source unavailable; network interruption.
  • Retry behaviour and recovery after restoration.
  • Reconciliation completes and reports differences correctly.

Monitor interfaces in operation

Interface health should appear in central monitoring: message rates, queue depth, error counts, latency, and the age of the oldest unprocessed message. Reconciliation results are reported regularly and discrepancies are tracked as incidents or problems.