leaky abstraction
An abstraction exposes details callers still need to understand.
Use this when Application code repeatedly handles vendor-specific details despite a wrapper.
without the term
“We wrapped the vendor SDK but our app code still deals with their error codes and weird response objects everywhere. Can you make the wrapper actually hide that stuff?”
with the term · How do you ask a model for leaky abstraction?
Reduce this abstraction leak. Keep vendor types and errors behind the adapter and verify the caller with two implementations.
What is leaky abstraction?
Every abstraction leaks somewhat. It becomes a problem when callers still have to handle the hidden system's types, errors, or quirks, so the boundary no longer protects them.
Why does leaky abstraction matter when vibe coding?
A wrapper can add indirection while preserving all the coupling.
How do you do leaky abstraction?
Identify the caller contract and translate the implementation detail at its boundary.
What goes wrong with leaky abstraction?
Wrapping every method while returning the underlying client through an escape hatch.