- There are also a lot of developers already depending on the code that is subject of the ‘longer to complete’ change, and we do not want them to be slowed down in any way.
- No commit pushed to the shared repository should jeopardize the ability to go live.
- Create an abstraction for the functionality to be replaced.
- Change clients of the existing functionality to use the new abstraction.
- Create a new implementation of the abstraction with the reworked functionality. (microservice)
- Switch over the abstraction to use our new implementation.
- Clean up the abstraction & remove the old implementation.
alternative phrasing
- Create abstraction.
- Use abstraction.
- Create new implementation.
- Switch implementation.
- Clean up.
see 1 for diagrams.
see 2 for first article written on BbA.
see 3 for a Fowlerian write-up.