My Authors
Read all threads
#ContinuousIntegration Pro-tip (of course I mean single branch):
Start adopting the expand-contract pattern.
Expand-contract is what blue-green deployments do.
You expand by installing a new version of the app, and then you contract by removing the old version.
Expand-contract is also heavily used for zero-down time database schema changes.
Let’s say you need to rename a table column.
You expand by adding a new column with the new name.
Feed the new column with data.
Once the app uses the new column, contract by removing the old one.
In software, expand-contract is mostly used for method signature changes.

You expand by duplicating the method and change the signature.
Modify all consumers to use the new signature.
Contract once all consumers are using the new signature by removing the old method.
Expand-contract can also be applied to infrastructure definitions like for instance renaming AWS security groups.

Expand by duplicating the security group with the new name.
Use the new security group for existing EC2 instances.
Contract by removing the old security group.
When introducing a new remote API version by adding a new URL-endpoint expand-contract is being applied.
When evolving the API on the same endpoint Postel’s Law should be followed which is another form of expand-contract.
Of course, to be effective, expand-contract requires the ability to perform multiple incremental deployments in very short iterations.
#ContinuousDelivery
You might move slower and have to think harder when applying expand-contract. I give you that.
But, oh dear, it vastly pays back in delivery flexibility and never blocking the flow of delivery as at any time you’ll have a releasable working software system.
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Thierry de Pauw

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!