1/30
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
System Architecture
The blueprint that defines how components of a system interact to achieve specific goals.
System Components
Includes hardware, software, networks, and data storage.
Hardware
Physical infrastructure: servers, storage devices, networking equipment.
Software
Applications, operating systems, middleware that run on hardware.
Networks
Communication channels connecting components.
Data Storage
Databases, file systems, cloud storage managing information.
Design Principles
Refers to modularity, abstraction, encapsulation, and loose coupling.
Modularity
Breaking a system into independent, self-contained modules that can be developed, tested, and maintained separately.
Abstraction
Hiding complex implementation details and exposing only what's necessary through simple interfaces.
Encapsulation
Bundling data and methods that operate on that data within a single unit, restricting direct access from outside.
Loose Coupling
Minimizing dependencies between components so changes in one component have minimal impact on others.
Scalability
The ability of a system to handle growth (more users, more data, more requests).
Vertical Scaling
Add more power to existing machines (e.g. GPU, RAM, Storage), but is limited to hardware capacity.
Horizontal Scaling
Add more machines (Load balancing, Distributed Systems, Cloud Auto-Scaling), and has virtually no limit.
Flexibility
Ability to adapt to changing requirements such as adding new features, supporting different platforms, and integrating new tech.
Resilience
Ability to withstand and recover from failures such as redundancy, fault tolerance, and graceful degradation.
Architectural Layers
Composed of controller, service, and repository layers.
Controller Layer
Receives HTTP requests, validates input, returns responses.
Service Layer
Business logic lives here. Calls repositories to get/store data.
Repository
Talks to the database. No business logic — pure data access.
Springboot
A convention-over-configuration framework built on top of the Spring ecosystem.
@SpringbootApplication
Typically placed with the main application class.
@Autowired
Used to declare what you need.
@RestController
Used to build RESTFUL web services.
@RequestMapping
Maps web requests to specific methods / classes.
@GetMapping
Used to map HTTP method GET requests.
200
The request is successful and the server has returned the requested data, typically sent after a GET request.
201
The request has been fulfilled, and one or more new resources has been added, typically sent after a POST request.
404
The server is reachable, but the specific page / file is missing.