From its inception, the MachineShop platform has eschewed monolithic architecture in favor of independent modules that work in concert. We’ve evolved our underlying frameworks over time to embrace more and more parallel processing. This evolution has in turn enabled even more decoupling of processes using a common “bus” of sorts for inter-process communications. And thus, a microservices approach was born.
Why should you care? In two words: User experience. When we break a complex system up into truly decoupled pieces, end users get a few key benefits:
We can scale the specific features that need scaling.
If/when things break, they break at a micro scale without affecting other features. (Side note: Monitoring highly-parallelized systems is a fairly large subject on its own.)
As functionality is evolved or expanded, deployments happen at a micro scale - and seamlessly at that - minimizing potential impact on the system as a whole.
Want to learn more? Here are a couple of articles that do a great job of discussing the ins and outs of microservice architecture: