Our monthly subscription fees have changed recently. Please see the latest information here.
Product Manager Louis Sutton decouples monoliths and microservices.
Let's face it, we’ve all been in meetings where technical conversations can go over our heads. As a Product Manager, a big part of my job is to bridge these technical conversations between developers and non-technical stakeholders.
I’ve done my best to do this on a particularly complex topic as part of this blog.
Before we dive into the details, it’s maybe worth briefly giving the context of how features actually get delivered. Although the details differ company to company, the key concepts are the same.
So, now you know how features get built, tested and deployed, it’s time to discuss Microservices, Monoliths and everything in between!
Imagine you’ve got two teams working on a presentation in Google Slides. Now imagine that the presentation is a single slide and you’ve got multiple members of each team focusing on different parts of the slide. Sometimes you accidentally overwrite each other's changes, mess up each other's formats and, frustratingly, you need everyone else in the team to be finished before you can submit the slide to your boss.
A software Monolith is much like this ‘single slide’ example.
A Monolith is a single package of code that contains all the software, features and functionality your company offers. Given it’s a single thing, it has to be deployed all together in one big bang. This means if one team has successfully tested a fix for a tiny bug in UAT, they have to wait until all other features and new pieces of functionality in the monolith are successfully tested before they can ‘deploy’ to customers. This means teams are dependent on each other to get changes live, and changes made by one member of one team are more likely to impact something else being worked on by another team.
Using the same example, a microservice architecture would be equivalent to a Google slides presentation with multiple slides. Each slide is fully owned by an individual or team and when a slide was finished it could be saved without requiring the rest of the deck to be finished first.
In software, microservices are essentially a broken-up monolith; individual microservices contain a specific feature, function or part of the wider codebase. If teams need to change how a feature works, they only need to do so on a single microservice. Equally, they can deploy that feature quickly without waiting for other teams to make their changes. If something goes wrong it’s easier to spot where things have gone wrong and revert the change (roll back the code) quickly.
Neither! They both have different strengths and weaknesses depending on your needs. Most startups begin with a monolith to keep things simple, allowing them to ship new features quickly without having to design complex technical architecture. As companies grow, so do their codebases, which often become more complex with more teams working on them simultaneously. For this reason, companies in ‘scale up’ mode often transition to a microservice model which brings all the benefits I mentioned above.
In order to keep this short, sweet and simple I’ve avoided many of the nitty gritty details that can make this conversation overwhelming. I hope you’ve left this blog with an expanded technical vocab so fewer of those technical conversations go over your head in future.
If you’d like to learn more about our product team at Freetrade or our mission to get everyone investing, get in touch.
We’re always on the lookout for engineers, as well as product managers and product designers to help build our platform and mobile apps.
If you want to help build a world where everyone is investing, come join the fun at freetrade.io/careers.
The views expressed above are those of community members and do not reflect the views of Freetrade. It is not investment advice and we always encourage you to do your own research.