[SURVEY RESULTS] The 2024 edition of State of Software Modernization market report is published!
GET IT here

Modular Monolith – When to Choose It & How to Do It Right

readtime
Last updated on
March 14, 2024

A QUICK SUMMARY – FOR THE BUSY ONES

Modular Monolithic Architecture - Key Takeaways

Strategic choice of architecture is crucial

Rushing into microservices because of its popularity without assessing its fit can lead to unnecessary complexity and costs.

Modular monolith offers flexibility

The modular monolith architecture offers a balanced approach. It combines the simplicity and ease of deployment of a monolith with the flexibility and scalability potential of microservices. It's particularly suited for businesses looking to modernize legacy systems without diving into the operational complexity of microservices. That makes it an excellent stepping stone for future scaling.

Consideration for legacy modernization and technical debt

Moving to a modular monolith can help tackle the issues of outdated systems by making them more manageable and setting the stage for easier updates or shifts to microservices later on. This approach helps balance performance, cost, and scalability.

Read on to find out when to choose the modular monolith and what exactly you can gain by taking this step.

TABLE OF CONTENTS

Modular Monolith – When to Choose It & How to Do It Right

Architecture = strategic choice

With a sluggish monolith on board, your architecture may be too complex to manage. Slow deployment cycles and application downtimes can give you a headache, too. But if you’re fed up with your legacy systems, don’t jump into microservices immediately. They are complex to deploy, difficult to debug, and have other painful constraints. But the modular monolith approach is on the horizon, too, and it can be the answer to many limitations that both monolith and microservices-based architectures entail. 

Over the last years, we’ve seen an extreme shift towards microservices, but its widespread adoption leads more and more companies astray. That’s why, as of 2024, the modular monolith vs microservices dilemma is getting more and more significant. 

When choosing an architecture type – a vital decision with grave consequences – it’s good to act wisely and not just go with the flow. You need to think ahead – and select a tech stack to serve you well today and when your business grows further. 

The best architecture possible is worth fighting for and, in many cases, it is the modular monolithic design. Implementing it is something any business owner or CTO who wants to speed up the software delivery process and provide better business results should consider.

Consequences of accumulating technical debt
Source: State of Software Modernization Report

Modular monolith architecture – what it truly is 

In brief, modular monolith architecture is simply a monolithic system (one that has only one deployment unit) designed in a modular way. But why would you ever turn to a style of software design called modular monolith design? What is the added value of the monolith’s modularity?

Using regular monolith architecture, with sets of data that are inseparable, or inextricably linked, often entails problems with things like accessing or updating data. But the modular monolithic approach comes to the rescue, offering greater flexibility by dividing a single software application into a set of modules.

These modules are separate, manageable parts developed independently but detectable by each other and able to communicate via interfaces. Modules constitute one unit but are easily interchangeable – to ensure high cohesion and low coupling. What’s more, when the time is right, some of the modules can be extracted, which makes the modular monolithic design very useful and functional.

Modular monoliths are sometimes called moduliths – the name emphasizing their modular character. To make a long story short, the modular monolith – with self-contained, independent modules – can be regarded as an approach halfway between regular monolith and microservices. It’s perfect when monolithic architecture drags your system down but you are aware that microservices may suit your needs better in the future, as your project scales. Moduliths are not as simple deployment-wise as regular monoliths and not as operationally complex as microservices. Still, they’re modular and thus have the potential to maintain even large applications.

Other benefits include:

  • simplified deployment,
  • good performance and stability,
  • easy maintenance,
  • low operational costs,
  • eliminating network latency.

Modernizing legacy software with the modular monolith

Moving towards the modular monolith can also be seen as one of the ways of modernizing legacy software – a serious problem many organizations deal with. Accumulating technical debt affects all the company’s systems and processes, making running a business more unpredictable, disheartening, difficult, and costly.  

To make growing businesses truly successful, the problem of technical debt needs to be taken care of promptly. Of course, many CTOs, CPOs, or business owners choose to omit system updates to save some money. At the same time, legacy systems and applications are still in action, generating huge costs that could easily be avoided. 

The cost of legacy systems
Source: State of Software Modernization Report

The good news is that even the outcomes of many years of neglect – in the form of obsolete development and quick fixes – can be eliminated.

Modular monolith vs regular monolith

The modular monolith vs regular monolith dilemma is not something very common among business owners or CTOs. That’s because the traditional monolithic approach, regarded as outdated, has been displaced by the microservice architecture, and not by the modulith. 

The microservice-based approach has been in the limelight for many years, being a number one solution for the majority of new projects. The first step towards microservices – and reducing the monolith’s technical debt – should be, in fact, with the modular monolith. That’s because this model lets organizations enjoy the best sides of both approaches – monolithic and composable ones. 

If you want to make your monolith architecture – that uses one code base and has interdependent software components – more efficient, flexible, and scalable and manage it better, the modular monolithic design may be just what you need. 

Implementing the traditional monolithic approach – which entails building applications as single units – can be convenient mainly at the project’s initial stages, because steps such as deployment and code management can be easily released at once. But when projects grow big, it’s usually time to move on towards greater modularity. And this means facing the modular monolith vs microservices dilemma. 

Modular monolith vs microservices 

A lot has been said about the benefits of shifting away from static to composable, headless solutions. Overall, this change makes the systems more functional but can also be very important business-wise.

Microservices

Some of the benefits of using microservices include:

  • gaining more control over the system’s functionalities,
  • improving customizability potential,
  • increasing performance and reducing downtime,
  • code reusability and cost reduction,
  • greater fault tolerance,
  • making the tech stack more modern and future-proof.

Shifting away from monolith to composable architecture may be a giant leap for e-commerce companies – on the way to more successful sales at scale. However, breaking a monolith into microservices – services that work together but are only loosely coupled, with front-end and back-end separated – is not the best solution for every business.

Replatforming from monolith to composable architecture may be a good idea when your application is just about to scale, and the number of features goes up – but not at the beginning of a project. In general, microservices can be the right option for medium-sized and large projects – and for companies that can afford them. Switching to microservices before it’s necessary can drain your budget in vain.

Choosing microservices means accepting deployment process complexities that can be hard to overcome, resulting in slower development and longer kickoff times. Other possible problems include product performance issues (due to increased network traffic between services) and the necessity of using a hosting configuration that is way more complex – all involving a lot of time and money. Also, in the case of migrating from monolith to microservices, there is no final touch – you should be ready for further enhancements in the future to make your system ahead of the game at all times. However, a change to one microservice doesn’t affect others, which makes the system easier to navigate over time than it is in the case of modular monoliths.

Microservices involve independent deployments and offer greater scalability potential – so if your product is likely to benefit from these features, choosing this type of architecture may be a good thing to do. However, always keep in mind that it takes more time to start a project with it, software development is more demanding, and the underpinning infrastructure – more complex. 

The modulith approach

Undoubtedly, in many cases, the modulith approach is more appropriate than microservices, enabling speedy delivery and prompt feature development. Also, it usually helps avoid being overburdened by serious maintenance issues. On top of that, modular monoliths are simply easier to develop than microservices for an average team.

In general, a modular monolith design may be more appropriate in the case of:

  • relatively small and simple projects,
  • early stages of software development,
  • budget constraints,
  • instances when logical module separation (and further extraction, e.g. for scalability reasons) is possible,
  • projects that may undergo a transition to microservices in the future.

How modular monolith helps - in practice

The latter was the case of one of our team's projects – concerning the development of a project management product.

Modules involved (such as assignments and leave management) were not implemented as microservices. Choosing modular monolith architecture allowed the team to focus on delivering milestones and developing particular features, instead of spending too much time on taking care of configuration. On top of that, the monolithic approach increased efficiency and delivery speed. The decision not to split the backend into microservices was beneficial at that point, however, the space was still left for switching to microservices-based architecture later on.

Read the whole use case here: When Monolith Is Better Than Microservices

Switching to the modular monolith – key takeaways

The decision on what type of backend architecture to choose should be careful and far-sighted, as it is crucial for any business. Factors such as application size, user base, expected traffic, possible future growth, team structure, experience, budget, and domain complexity should all be taken into consideration.There are many cases when switching to a modulith is very beneficial, e.g. when maintaining the obsolete architecture costs too much of your time, attention, and money. Although this process can be a bumpy ride, it’s worth making the effort – the truth more and more businesses understand. 

Of course, any change is a challenge and taking the first step – even in a good direction – may be very difficult. However, waving goodbye to old-school, legacy systems is the best decision on the way to making your business more agile and scalable. There’s no time to waste.

Struggling with slow deployment cycles and application downtimes? Want to make it all different with a brand new solution? If you’re interested in moving forward with a modular monolith and want to make sure that the process of migration goes smoothly, contact Brainhub now.

Frequently Asked Questions

No items found.

Our promise

Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.

Authors

Olga Gierszal
github
Software Engineering Editor

Software development enthusiast with 6 years of professional experience in the tech industry.

Leszek Knoll
github
CEO (Chief Engineering Officer)

With over 12 years of professional experience in the tech industry. Technology passionate, geek, and the co-founder of Brainhub.

Read next

No items found...

Get smarter in engineering and leadership in less than 60 seconds.

Join 300+ founders and engineering leaders, and get a weekly newsletter that takes our CEO 5-6 hours to prepare.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

next article in this collection

It's the last one.