glossary
dz / system_design_interview / glossaryNode Tree
- A_star_algorithm
- data_model
- dijkstras_algorithm
- geocoding
- geohash
- load_balancing
- publish_subscribe
- QPS
- quadtree
- RDBMS
- redis
- REST
- software_architecture
- systems_engineering
- websocket
Nodes
functional_requirement | |
content | Functional Requirement: defines a function of a system or component, where a function is described as a summary/specification/statement of behavior between inputs and outputs |
children | system_design_interview/toc/01_proximity_service/step1/func_reqs, non_functional_requirement |
parents | systems_engineering, requirements_engineering, system_design_interview/glossary, DDIA/glossary/functional_requirements |
remarks | Every system here begins with listing the functional and non-functional requirements |
hyperlink | https://en.wikipedia.org/wiki/Functional_requirement |
flashcard (front) | What is a functional requirement? |
flashcard (back) | A functional requirement is a requirement of a system that defines a function of a component, a behavior between inputs and outputs |
systems_engineering | |
content | Systems engineering: an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems |
children | requirements_engineering, functional_requirement (context of) |
hyperlink | https://en.wikipedia.org/wiki/Systems_engineering |
non_functional_requirement | |
content | Non-functional requirement (NFR): a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. |
children | system_design_interview/references/NFR_examples, system_design_interview/toc/01_proximity_service/step1/nonfunc_reqs |
parents | functional_requirement, requirements_engineering, system_design_interview/glossary, DDIA/glossary/nonfunctional_requirements |
hyperlink | https://en.wikipedia.org/wiki/Non-functional_requirement |
flashcard (front) | what is non-functional requirement? |
flashcard (back) | A non-functional requirement is a requirement is used to judge the operation of a system, such as safety, security, performance, testability, etc. |
requirements_engineering | |
content | Requirements Engineering: the process of defining, documenting, and maintaining requirements in the engineering design process. |
children | functional_requirement, engineering_design_process, non_functional_requirement |
parents | systems_engineering |
hyperlink | https://en.wikipedia.org/wiki/Requirements_engineering |
flashcard (front) | What is requirements engineering? |
flashcard (back) | The process of definining, documenting, and maintaining requirements in the engineering design process |
engineering_design_process | |
content | Engineering Design Process, or Engineering Method: is a common series of steps that engineers use in creating functional products and processes. |
parents | requirements_engineering |
hyperlink | https://en.wikipedia.org/wiki/Engineering_design_process |
http_request_methods | |
content | HTTP Request Methods: "verbs" in the HTTP protocol to indicate the desired action to be performed on the desired resource. Examples include GET, POST, PUT, and DELETE. |
children | system_design_interview/references/RFC2616_http_methods (Relevant section in RFC) |
parents | REST |
hyperlink | https://en.wikipedia.org/wiki/HTTP#Request_methods |
REST | |
content | REST: Representational State Transfer, is a software architectural style that was created to guide the design and development |
children | system_design_interview/toc/02_nearby_friends/step2/high_level_design/RESTful_API_servers, http_request_methods (REST is commonly associated with HTTP-based APIs,utilizing HTTP methods or "verbs"), system_design_interview/toc/01_proximity_service/step2/api_design |
parents | DDIA/glossary/REST |
hyperlink | https://en.wikipedia.org/wiki/REST |
data_model | |
content | Data Model: an abstract model that organizes data and standardizes how it relates to real world entities. |
children | system_design_interview/toc/01_proximity_service/step2/data_model |
parents | DDIA/glossary/data_model |
hyperlink | https://en.wikipedia.org/wiki/Data_model |
software_architecture | |
content | Software Architecture: set of structures needed to reason about a software system and the discipline of creating such structures and systems. |
hyperlink | https://en.wikipedia.org/wiki/Software_architecture |
RDBMS | |
content | RDBMS: relational database management system. |
children | system_design_interview/tools/mysql |
parents | system_design_interview/glossary, DDIA/glossary/relational_database |
load_balancing | |
content | Load balancing: the process of distributing a set of tasks over a set of resources, with the aim of optimizing response time and avoiding unevenly overloading some compute nodes while others are left idle. |
children | system_design_interview/toc/02_nearby_friends/step2/high_level_design/load_balancer, system_design_interview/toc/01_proximity_service/step2/high_level_design/load_balancer |
parents | system_design_interview/glossary |
hyperlink | https://en.wikipedia.org/wiki/Load_balancing_(computing) |
flashcard (front) | What does a load balancer do? |
flashcard (back) | A load balancer is a component in a system that distributes a set of tasks over a set of resources. |
QPS | |
content | QPS: queries per second |
parents | system_design_interview/glossary |
geohash | |
content | Geohash: a string of letters and numbers used to represent a geographic location. It is a simple way to encode location data and is particularly useful for pinpointing specific locations. |
children | system_design_interview/toc/03_google_maps/step2/map_101, system_design_interview/toc/01_proximity_service/step2/algorithms/3_geohash |
parents | system_design_interview/glossary |
hyperlink | https://en.wikipedia.org/wiki/Geohash |
quadtree | |
content | two-dimensional space by recursively subdividing it into four quadrants or regions. Each node in the tree has at most four children, and leaf nodes store data. |
children | system_design_interview/toc/01_proximity_service/step2/algorithms/4_quadtree |
parents | system_design_interview/glossary |
hyperlink | https://en.wikipedia.org/wiki/Quadtree |
flashcard (front) | quadtree: a tree data structure that partitions a |
flashcard (back) |
websocket | |
content | WebSocket: a computer communications protocol, that allows for two-way, realtime interaction between a web browser and a server. |
children | system_design_interview/toc/02_nearby_friends/step2/high_level_design/websocket_servers |
hyperlink | https://en.wikipedia.org/wiki/WebSocket |
flashcard (front) | What is a websocket? |
flashcard (back) | A websocket is a computer communications protocol, that allows for two-way, realtime interaction between a web browser and a server. |
redis | |
content | Redis: Remote Dictionary Server. Redis is a versatile, in-memory key-value database storage system designed for fast data retrieval and manipulation. It's used as a cache, message broker, and database, offering low-latency operations and durability. |
children | distributed_cache, message_broker |
hyperlink | https://en.wikipedia.org/wiki/Redis |
flashcard (front) | What is Redis? |
flashcard (back) | Redis is an in-memory storage system |
distributed_cache | |
content | Distributed Cache: extension of a the traditional concept of a cache used in a single locale. A distributed cache may span multiple servers so that it can grow in size and in transactional capacity. |
parents | redis |
flashcard (front) | What is a distributed cache? |
flashcard (back) | Extending on the concept of a traditional cache in a single locale, a distributed cache is a cache that may span multiple servers so that it can grow in size and capacity. A distributed cache |
message_broker | |
content | Message Broker: an intermediary computer program that translates messages from one formal messaging protocol to another, enabling communication between software applications that use different communications protocols |
parents | redis |
flashcard (front) | what is a message broker? |
flashcard (back) | A message broker is an intermediate program that granslates messages from one protocol to another. |
publish_subscribe | |
content | publish-subscribe: a messaging pattern where publishers categorize messages into classes that are received by subscribers. |
hyperlink | https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern |
geocoding | |
content | Geocoding: the process of converting addresses to geographic coordinates |
children | system_design_interview/toc/03_google_maps/step2/map_101 |
hyperlink | https://en.wikipedia.org/wiki/Address_geocoding |
A_star_algorithm | |
content | A* algorithm: A* (pronounced "A-star") is a graph traversal and pathfinding algorithm that is used in many fields of computer science due to its completeness, optimality, and optimal efficiency |
children | system_design_interview/toc/03_google_maps/step2/map_101/road_data_processing_navigation |
hyperlink | https://en.wikipedia.org/wiki/A*_search_algorithm |
dijkstras_algorithm | |
content | Dijkstra's algorithm is an algorithm for finding the shortest paths between nodes in a weighted graph, which may represent, for example, a road network. |
hyperlink | https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm |