Why Every Integration Sits Behind an Abstraction
· 1 min read · 0 views
TimeSense connects to systems such as calendars, messaging platforms, task sources and LLM providers.
The easiest implementation would have been to call each external API directly from the core product logic.
I rejected that approach.
Every integration sits behind a provider interface. The recommendation engine asks for calendar events; it does not need to know whether they came from Google, Microsoft or Apple. The intelligence layer calls an LLM gateway; it does not depend directly on one model vendor.
This adds a small amount of design work at the beginning.
The benefit appears later:
• Providers can be added or replaced
• Testing can use controlled implementations
• Vendor-specific failures stay at the boundary
• Core business logic remains stable
The tradeoff is more interfaces and registry code.
The rejected alternative—tight provider coupling—would be faster for the first integration and increasingly expensive for every one after it.

Originally posted on LinkedIn.