I built a Symfony bundle this week that centralises external API integrations under a hexagonal architecture: IntegrationEngine.
The problem it solves: every integration ends up as an isolated case. Different auth mechanisms, inconsistent structures, duplicated cache logic. Code fragments and every new API means starting from scratch.
How it works
One entry point for all your integrations:
$registry->get('stripe')->send(







