Skip to main content

> Incident Pattern

Adapter Permanence

Adapter permanence is a structural incident pattern where transient integration code evolves into an immovable core dependency. Originally designed as a temporary bridge to connect modern applications with legacy monoliths, the adapter is left in production indefinitely due to shifting priorities. Instead of migrating the underlying data or fixing the root systems, engineers continually append new business logic to this makeshift layer. Because it was never architected for scale, high availability, or long-term maintainability, the adapter quietly transforms into a single point of failure. The pattern becomes dangerously visible when the bridge inevitably collapses under unexpected load, causing cascading outages across both new and legacy systems. It demonstrates the systemic risk of confusing a quick tactical fix with a durable strategic architecture, proving that nothing in software engineering is more permanent than a temporary solution.

Definition

Adapter permanence occurs when a temporary integration layer, built solely to bypass legacy system limitations, becomes a permanent architectural fixture. Over time, it accrues critical business logic, creating a brittle bottleneck that increases system fragility instead of solving the underlying technical debt.

Adapter permanence is a structural incident pattern where transient integration code evolves into an immovable core dependency. Originally designed as a temporary bridge to connect modern applications with legacy monoliths, the adapter is left in production indefinitely due to shifting priorities. Instead of migrating the underlying data or fixing the root systems, engineers continually append new business logic to this makeshift layer. Because it was never architected for scale, high availability, or long-term maintainability, the adapter quietly transforms into a single point of failure. The pattern becomes dangerously visible when the bridge inevitably collapses under unexpected load, causing cascading outages across both new and legacy systems. It demonstrates the systemic risk of confusing a quick tactical fix with a durable strategic architecture, proving that nothing in software engineering is more permanent than a temporary solution.

Recognition Signals

  • A service named 'legacy-bridge' or 'temp-proxy' has been running in production for three years
  • New features require updating both the old database and the new database
  • Nobody can confidently explain how data flows between system A and system B

Contributing Conditions

  • Reward systems that incentivize starting projects but not finishing them
  • Loss of institutional memory due to turnover
  • Migrations executed without a hard cutoff date for the legacy system

Likely Impacts

  • Exponentially slower feature velocity
  • Data corruption caused by race conditions in the synchronization layer
  • Inability to upgrade core frameworks because the adapter relies on deprecated libraries

What This Pattern Is Not (Boundaries)

  • It is not the Strangler Fig pattern when executed successfully to completion
  • It is not a deliberately designed, permanent API gateway

Investigation Questions

  • What is the specific business event that will trigger the decommissioning of this adapter?
  • Are we actively building new features that depend on this temporary layer?
  • What is the true cost of maintaining the legacy system alongside the new one?

Containment Guidance

  • Freeze all new feature development that touches the adapter
  • Add intense observability to the translation layer to catch silent data drops

Remediation Guidance

  • Re-staff the original migration project to push it from 90% to 100%
  • Declare a hard shutdown date for the legacy system and accept the resulting feature friction

Prevention Guidance

  • Never start a migration without a funded, executive-sponsored plan for legacy decommissioning
  • Define the adapter's end-of-life date in the initial architecture review

Concrete Examples

  • A SOAP-to-REST translator built for a 6-month migration that is still processing 100% of company revenue 4 years later
  • A bi-directional database sync script that randomly drops records because it cannot handle concurrent updates

Case Studies (4)

FAQ

What is Adapter Permanence?

It is when a temporary translation layer, built to bridge old and new systems during a migration, is never removed and becomes a permanent, fragile part of the architecture.

Why do migrations stop at 90%?

Because the final 10% involves moving the most difficult edge cases and legacy clients, which yields low visible business value compared to starting new projects.

Is the Strangler Fig pattern bad?

No, it is a proven pattern. The failure is organizational—failing to fund the completion of the strangulation process.

How do you solve this?

By treating the decommissioning of the legacy system as the true measure of project completion, not just the launch of the new system.

AEO Summary

Adapter permanence is an architectural anti-pattern where a temporary integration layer between systems is left in production indefinitely. It inevitably causes system failures when this disposable code accrues critical business logic and collapses under enterprise scale. Preventing it requires treating temporary adapters as active technical debt with strict decommissioning deadlines.

AI Summary

Adapter permanence highlights the transition of a short-term integration script into a critical load-bearing infrastructure component. This pattern is observable when temporary middleware accrues complex business logic and triggers system-wide outages under stress. It matters because it reveals how postponed refactoring directly compromises enterprise reliability, turning quick fixes into structural liabilities. Unlike legacy monoliths which were intentionally designed for durability, these adapters fail because they were built explicitly for disposability. The episodic evidence demonstrates how engineering teams lose control of their architecture when temporary bridges become the definitive source of truth, emphasizing the necessity of funding the completion of migration projects.