Answer the question
In order to leave comments, you need to log in
What to choose for the graduation project - monolith or microservices?
Hello!
I am a 3rd year undergraduate student, I want to make a web application as a graduation project. In the future I want to work as a backend developer.
I can’t decide on the application architecture: monolith or microservices? On the one hand, a monolithic architecture will allow you to quickly create an application, on the other hand, a microservice architecture is now popular. If done on microservices, then I can learn something new for myself. In addition, there will be something to show in the portfolio.
Unfortunately, I will write this project alone. This imposes some restrictions on the complexity of the project.
In one article , I read that microservices should not be used in a small team, especially since they start creating a project.
Then the question arises: is it worth making a web application based on a microservice architecture for a portfolio and as a graduation project? Or will it be too difficult for one person, and a monolith will do for his portfolio?
I plan to post the project on Github.
I plan to use the stack:
Monolith: Python / Django
Microservices: Python / Flask or GoLang. Transport protocols have not yet chosen.
Answer the question
In order to leave comments, you need to log in
Microservices, in a way, are a refactoring of the monolith architecture. Tuning, so to speak. The fact is that the identification of bottlenecks is not easy and it is not always possible to determine in which place it will come to light.
I advise you to start with a monolith so that you can complete the project on time. If there is time, then you can still experiment and determine which functionality can be separated as an independent unit.
If a service is developed by a team of 30+ people, then it makes sense to think about dividing it into microservices.
This is not your case, calmly write a monolith.
Microservices are a lot of extra overhead and communication and infrastructure pain that circumstances force.
But you do not have such circumstances and the choice is obvious.
Start simple. Make a minimum working project, and only then experiment. And then you can be left without a project and without time.
I disagree with Immortal_pony . A monolith is simpler, of course, especially if from scratch, but there is always the now popular Serverless (AWS/Azure/GCP). It all depends on the complexity of the application you are going to make.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question