Keep out of the Weeds | Zero Downtime

Alter your Port without blocking parallel development.

The Change

When you need to alter your Port, execute the change like a rolling deployment.

The Value Proposition

Altering an existing behavior on the Port requires everything to change. First this changes at least one Contract test, which now fails. We have to update every Adapter to pass the changed test. That includes the Simulator, which will now cause at least one Simulator test to fail. We have to change the Boundary Objects to account for the new behavior so that test will pass.

Each step can be complex and we would like to commit many times along the way. Yet we have failing tests the whole time. Each fix breaks something else.

Using a rolling deployment strategy allows us to make parts of this change while keeping all the tests green. We can perform the change incrementally.

Altering the port incrementally gives several advantages:

  1. Allows us to recover from a mistake partway through.
  2. Doesn’t block release at any time, even if code reaches main.
  3. Enables parallel development of any part of the application, even code that depends on the old or new behavior.
Please log in

This content is only available to students. Please log in to access it.