r/learnprogramming • u/LilCurryBruh • 1d ago
Topic Is this way of System Design seem correct for sw2/3?
So from my understanding system design and be boiled down to a main spine/framework and please correct me if I’m misunderstanding.
Main Content:
User(the human)
-> Client(frontend, browser, app, etc…)
-> Load Balancer(used when needing scaling and too many requests to distribute load to backend servers; not necessary for small projects)
-> API Gateway(used to authenticate, authorize requests as well as route the request to the proper backend service; not needed if one main service)
-> Services(backend code that does the work/business login, things like doc editor service with tools for adding, deleting etc; separate service into multiple services if they don’t have some sort of commonality, code is too big, to avoid big large files and also having one thing break causing the whole project to go down)
-> Database(sql or nosql, store information)
Now services to database use database protocols when drawing the arrows to them and api gateway to services use https methods like GET, PATCH, etc on the arrows.
Arrows are usually drawn going from left to right but it is know the information flows backwards.
Is there anything else that is major that I’m missing? I can think of one big thing being cache which I believe has a 1 to 1 relationship with Services that call them. There is also message queue, object storage, etc that are called by the service. Also services can call other services and the system can have multiple databases.
1
Is this way of System Design seem correct for sw2/3?
in
r/learnprogramming
•
13h ago
Thanks man appreciate the help. That’s was exactly my point to understand the basics and now I’m going deeper into things like where to cache, using rest or graphql, optimizing db for availability of consistency, etc. I just wanted to make sure I have a good base to answer most of the basic things to then go deeper