Inno V- System design Flashcards
Load Balancers
Distribute incoming traffic across multiple servers to optimize performance and ensure reliability.
Key-Value Stores:
Storage systems that manage data as pairs of keys and values, often implemented using distributed hash tables.
Blob Storage
A service for storing large amounts of unstructured data, such as media files (e.g., YouTube, Netflix).
Databases
Organized collections of data that facilitate easy access, management, and modification.
Rate Limiters
Control the maximum number of requests a service can handle in a given timeframe to prevent overload.
Monitoring Systems
Tools that enable administrators to track and analyze infrastructure performance, including bandwidth and CPU usage.
Distributed Messaging Queues:
Mediums that facilitate communication between producers and consumers, ensuring reliable message delivery.
Distributed Unique ID Generators:
Systems that generate unique identifiers for events or tasks in a distributed environment.
Distributed Search
Mechanisms that allow users to search across multiple data sources or websites for relevant information.
Distributed Logging Services:
Systems that collect and trace logs across services to monitor and troubleshoot applications.
Distributed Task Schedulers
Tools that manage and allocate computational resources for executing tasks across a distributed system.
Caching
A technique for temporarily storing frequently requested data that speeds up its retrieval when needed again called caching. The main database or data source is less burdened when caching is included in system architecture, which enhances performance and efficiency. Quick access, reduces database load, improves performance and user experience
Content Delivery Network (CDN)
A Content Delivery Network (CDN) is a network of servers spread across different regions that enables faster delivery of content to users, such as webpages, movies, and photos. when a user requests content (like a video or an image), instead of retrieving it from the main server, the request is handled by a nearby CDN server, which has a cached copy of the content.
This reduces the distance the data has to travel, making it load faster for the user.
API Gateways
is like a central doorway or “traffic controller” for requests coming into a system. In system design, it acts as a single entry point for clients (such as apps or websites) to access multiple backend services in an organized and secure way. Routing, security, monitoring, load management
Latency
is defined as the amount of time required for a single data to be delivered successfully. Latency is measured in milliseconds (ms).
Availability
is the percentage of time the system is up and working for the needs.
Redundancy
is defined as a concept where certain entities are duplicated with aim to scale up the system and reduce over all down-time.
Consistency
is referred to as data uniformity in systems.
Different types of System Architecture Patterns include:
Client-Server Architecture Pattern: Separates the system into two main components: clients that request services and servers that provide them.
Event-Driven Architecture Pattern: Uses events to trigger and communicate between decoupled components, enhancing responsiveness and scalability.
Microkernel Architecture Pattern: Centers around a** core system (microkernel)** with additional features and functionalities added as plugins or extensions.
Microservices Architecture Pattern: Breaks down applications into small, independent services that can be developed, deployed, and scaled independently.
System Design Life Cycle (SDLC)
Planning => study => system design => implementation => testing => deployment => maintenance and support
- Planning Stage
- Feasibility Study Stage (check if we can actually deliver the system)
- System Design Stage
- Implementation Stage
- Testing Stage
- Deployment Stage
- Maintenance and Support
CAP theorem:
C- consistency
-when system returns the info, it is always the newest, up to date content
A- availability
-system always return info, even if stale, system always returns info, never stop functioning
P- partition tolerance
-during the partition of the system, the system can still operate
Cap theorem- you can only have 2 of 3 properties, you cant have all three
Lamport’s Logical Clock Theorem
Lamport’s Logical Clock is a process to ascertain the sequence in which events take place.
It acts as the foundation for the more complex Vector Clock Algorithm. A logical clock is required because a distributed operating system (Lamport) lacks a global clock.
to algorytm zaproponowany przez Leslie’a Lamporta w 1978 roku, który pozwala na synchronizację zdarzeń w rozproszonych systemach komputerowych, gdzie nie ma wspólnego zegara. Zegar ten nie mierzy czasu w tradycyjny sposób, ale śledzi kolejność zdarzeń w systemie.
What are Functional Requirements?
These are the requirements that the end user specifically demands as basic facilities that the system should offer. All these functionalities need to be necessarily incorporated into the system as a part of the contract.They are the requirements stated by the user which one can see directly in the final product, unlike the non-functional requirements.
What are Non-Functional Requirements?
These are the quality constraints that the system must satisfy according to the project contract. The priority or extent to which these factors are implemented varies from one project to another. They are also called non-behavioral requirements. They deal with issues like:
Portability
Security
Maintainability
Reliability
Scalability
Performance
Reusability
Flexibility
Examples: