Updating An Antiquated System - An Architectural Discussion
I recently saw this post on LinkedIn and wanted to reply. I exceeded the maximum character limit in my comment, so I moved it to a repost reply. I exceeded the maximum character limit there, so here's my reply in a blog post. This is a fun exercise. Instead of listing all my assumptions up front, you'll see them mixed in among the steps below. This is why microservices were created. Ideally you'd want to smart on a small subset of the system and replace one feature at a time, ensuring parity with the existing system before flipping the switch. This is a great use-case for TDD. You can write tests that validate the existing system's functionality in your new code-base before you write the code. Over time, those tests turn green as you accurately implement the existing features. The next big caveat is good logs. With something as mission critical as a mainframe, you cannot afford to lose anything to bad logging. Moreover, it's SO easy to not log the im...