2
What is the suitable architecture for huge project like 'School Management System' ?

I was trying to implement the microservices architecture, but is microservices architecture needed for 'School Management System' or monolith is fine ?

As microservice brings some pros with it like scalability,separate microservices etc but also cons like complexity, architecture , security and also hosting micoservices are expensive.

Thanks in advance

geeky
  • 1,592
  • 1
  • 8
  • 14
  • 1
    Your project will look like your org chart, like your funding structure. If this is a small project, a single programmer could implement the monolith in a few months. If it is large, then consider hiring folks who will use microservices. – J_H Dec 17 '22 at 05:29
  • @J_H thanks for replying to the thread. So that means that microservices are to be used if you have multiple developers required due huge size of project ? so if its only one developer than monolith is the way to go, regardless of the project size ? – geeky Dec 17 '22 at 06:17
  • Microservices have advantages, and they have costs. There's never a simple rule one should always follow in every circumstance, the pros and cons of competing approaches must be weighed. The costs of microservices will tend to not be worth it on a small project that a single individual can code up in a couple of months. As a project's budget, feature set, lines of code, calendar extent, and staffing get bigger and bigger, the isolation offered by microservices starts to look very attractive, which is why many projects have chosen to adopt it. Language agility, nice testing, the list goes on... – J_H Dec 17 '22 at 16:55
  • @J_H thanks for replying to my thread. Problem is that since In microservices domain I am beginner so weighing pros and cons is difficult becoz I am afraid if I miss any point it could have problems. – geeky Dec 20 '22 at 14:55
  • I advise that you wait until at least **two** people are working on your project. When there's one person, create a well-structured monolith with small [SRP](https://en.wikipedia.org/wiki/Single-responsibility_principle) classes and with [unit tests](https://docs.python.org/3/library/unittest.html#unittest.TestCase), same as always. When size of team swells to two, assign one person to create new class, maybe using postgress backend persistence and running under [Flask](https://flask.palletsprojects.com/en/2.2.x), while assigning the other person to _call_ that new code and JSON decode result. – J_H Dec 20 '22 at 16:42
  • @J_H thanks for replying. After R&D I have decided to use the same way as you mentioned. I will be using monolith architecture for now. – geeky Mar 21 '23 at 18:26

0 Answers0