Projects
2024·Architect & developer

Integration platform for an end-of-life service landscape

Architecture and implementation of a central integration platform that connects multiple applications inside an end-of-life service organisation and shares common data.

Symfony 7.1API Platform 3EasyAdmin 4.8PHP 8.3FrankenPHPKeycloak 26KotlinJava 21Go 1.22Vue 3PostgreSQLRabbitMQDockerGitLab CI/CD
Geometric flat illustration with connected blocks around a central node in muted tones

An organisation in the end-of-life services industry has built up a broad landscape of separate applications over the years — each strong in its own function, but without a calm place where shared information across those applications reliably comes together. For this landscape I designed and implemented a new integration platform.

The architecture is built around a Symfony application with API Platform 3 and EasyAdmin as the CMS layer. Around it runs a Go service for sending email and rendering reports, and Keycloak with Java and Kotlin sits as identity provider. That way the platform is not just a data hub but also a uniform point for authentication and notification.

Functionally the platform contains the shared base information used by multiple systems: contacts, dossiers, statuses and their surrounding rules. It deliberately did not become an 'all-in-one' application — the existing specialised systems continue to do their work, the integration platform makes sure they can act against one coherent picture of reality.

Although the platform has an infrastructure role, it is also used directly by end-users. What they see is a separate Vue application that maps tightly onto the API layer and presents the shared dossier information in a calm way to clients of the organisation.

An important theme of this trajectory was 'disturb as little as possible'. The connected systems remain in production and serve users daily; the integration platform was not allowed to slow them down or get in their way. We therefore worked with dual-write patterns, idempotent endpoints and clear contracts, and rolled out in phases so we could validate every integration point separately.

The result is a central backbone we can incrementally hook more flows onto in the years to come, without having to overhaul individual systems. For the organisation that means: less duplicate entry, more reliable data and a stable basis for new services.

Outcomes

  • One central integration point for identity, dossiers and notifications
  • Phased rollout in which every integration point was validated separately, without disrupting existing systems
  • Foundation across four layers: Symfony with API Platform, Go, Keycloak and a separate Vue shell

More work

Other projects

Contact

Working in this domain?

Facing a similar challenge? Let's have a no-obligation conversation.

Get in touch