Skip to main content

Architecture: Monoliths and Microservices

Insight Published on 11 December 2020

Building quality, robust, and reliable software is no trivial task. But often overlooked or forgotten is the important task of choosing the correct architecture for the software solution. 

The world of technology is moving faster than ever before, this has resulted in any new problems that arise needing to be solved quicker than ever before. This means that software companies, like PDMS, face the challenge of creating ever-evolving software systems that not only adapt and scale on-demand but are easy to use and do not impact other parts of the software solution. 

Monolith

The traditional way, and still valid way, of architecting a software solution is the Monolith style. This means that the entire software solution is made-up of one system, using one code type and is maintained by a single team.

(Pictured a diagram of a single monolith serviced by one database that provides the complete software solution.)

Microservices

An alternative and more modern way of architecture software is Microservices - this approach breaks-up solutions into smaller loosely coupled components that can function independently of one another. These microservices then function together to form a complete software solution.  

(Pictured a diagram of a multiple Microservices and databases that work independently and when combined provide a complete software solution.)

A recent example of Microservices being used at PDMS is our work with the Northern Powerhouse where we implemented multiple regional employability & skills portals to help those impacted by Covid-19 find opportunities in their local area. The solution utilises our SignedUp Skills portal which, you guessed it, is made up of various Microservices that work together to create a bigger ecosystem.

There are many benefits to this approach:

  • Technology from different vendors can be mixed and matched together
  • New services can be introduced as the landscape changes
  • Microservices can be scaled up or down independently as required
  • Smaller cross-functional teams can work on Microservices independently and without causing code conflicts
  • A Microservice that performs a common function can be utilised by multiple different software solutions
  • There are small multiple code bases to maintain, test and release

Final thoughts

Microservices architecture is just one of many different architectures that can be used to create software solutions and does not necessarily replace the traditional monolith architecture. Both have a place and should be carefully considered when thinking about the present and future vision of the software solution.

Learn more about our software expertise.