Branch by Abstraction

Last Modified on

The Branch by Abstraction pattern allows for incremental and large-scale changes to a code base over time. By introducing an abstraction layer over top of the older code, you can easily change out the underlying behaviour without changing the published API.

As an example, this pattern could be used when converting the back end processing of an algorithm from one provider to another, flom local to remote processing, or vice versa.

This pattern is also known as the strangler.


To apply this pattern:

  1. create an abstraction layer over the system you want to replace
  2. refactor the remainder of the system to use the abstraction layer
  3. create new classes/services/etc and delegate over time
  4. the abstraction layer calls the appropriate old or new subsystem
  5. when complete, you can remove the abstraction layer if you want


Side Widget
You can put anything you want inside of these side widgets. They are easy to use, and feature the Bootstrap 5 card component!