system_design_interview/glossary

glossary

dz / system_design_interview / glossary

Node Tree

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