As it stands, there is not an agreed upon formal definition of microservices architecture. The easiest way to think of the concept is that it is a method of developing software applications. The way it differs from other approaches is the software application developed is made up of independently deployable, modular services where each service serves a business goal by running a unique process. In short, the microservice architectural style is just another way to approach development of a single application. It's key differentiating factor is that it develops via a suite of small services, each running in its own process and communicating with lightweight mechanisms.
Often referred to as just microservices, this method of development has grown in popularity over the past few years and one company utilising it, is Codebots.
Codebots is a tech company founded by WorkingMouse's very own Dr Eban Escott. WorkingMouse uses the code-writing bots to plan, design, build and launch awesome software to the cloud for our awesome partners. One of the most popular bots to date is Lampbot. The speed at which it can write lines of code is roughly 300,000 lines of code in a minute. The Lampbot architecture is based on microservices.
One of the benefits of microservices is scalability, which makes it particularly well suited for projects that require support for a range of platforms and devices. The way in which an application can be built with scalability in mind is to design with concurrency and partitioning in mind. At the end of the day, scalability is linked to the processing of tasks. It also is found to be useful for development where the final device that needs to be supported isn't known.
Monolith applications are built as an autonomous unit and singular in design. This doesn't ring true for microservices, in fact it is the polar opposite. This means there are issues surrounding change cycles in a monolithic architecture because they end up being tied to one another. This presents a big risk if or when any modifications need to be made. Say you want to modify just a small section of your application, with a microservices architecture this isn't a hassle. With a monolithic architecture, you might end up building and deploying a totally new version of your application.
Coming back full circle, microservices enables developers to scale specific functions of an application without having to scale the entire application. To learn more about how Lampbot wraps its code in API packaging check out this blog by WorkingMouse founder Dr Eban Escott.