In theory, programmers always knew that creating monolithic software creates problems on the long run. But the short time gains were so alluring and sometimes one got lucky and the increases in hardware speed concealed the bad design decisions. But now this is no more. Switching to a distributed system architecture has become inevitable once the amount of data or computation requirements reach a certain limit. For this, programmers need to accept that they have painted themselves into a corner.