Member-only story
The Banking Crisis explained for software developers
The banking system is a huge platform built with many distributed components (banks). However the designers of the system did a poor job on keeping the components independent and created a huge distributed monolith.
(or big ball of mud).
Because some components become too risky (lots of code debt), every change to the system to adapt to new requirements (like higher rates), creates a lot of friction and bugs.
The system has a lot of coupling among components and there’s no graceful failover by design, so when some components fail, it can bring the entire system down.
What the system regulators have been doing in the last decades was throwing a lot of processes, regulations and bureaucracies to validate new deployments and ensure it has the required quality.
However all these bureaucratic processes caused the system to become too rigid, hard to test and created a big barrier of entry for new components that would enable some innovation to the system.
With all of this mess It’s not possible to have a continuous delivery process with multiple daily deployments. The…