
A large, monolithic code base with complex dependencies requires extra maintenance work. In contrast, a well architected micro-service infrastructure is a bit more flexible. When a micro-service becomes faulty, you can replace it. You can rewrite it from scratch, using a different language or technology. This way, you learn something new rather than patching legacy code. And if your architecture doesn’t allow this yet, you can take steps to improve it, and learn some devops skills in the process.