Big ball of mud
Failure
The entire system stops providing the required service.
Fault
One component of the system deviates from its spec.
Head of line blocking
in computer networking is a performance-limiting phenomenon that occurs when a line of packets is held up in a queue by a first packet. Examples include input buffered network switches, out-of-order delivery and multiple requests in HTTP pipelining.
Latency
The duration that a request is waiting service, during which it is latent, awaiting service.
Netflix Chaos Monkey
Chaos Monkey is responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures.
Maintainability
The system can be worked on productively.
MapReduce
is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key
Click to access mapreduce-osdi04.pdf
memtable
an in-memory balanced tree data structure
NoSQL
Not only SQL
http://www.deadcafe.org/2009/10/30/nosql_whats_in_a_name.html (dead)
Polyglot persistence
https://martinfowler.com/bliki/PolyglotPersistence.html
Reliability
The system works correctly (correct function with performance) in the face of adversity (hardware/software faults/human error)
Designing data-intensive applications by Martin Kleppmann
Response time
the time to process the request time – with network delays and queueing delays
Ports and adaptors
A port can be considered a group of interactions with a specific purpose and should not make any assumptions in regards to its implementation
Probe
is an object that checks for a given state. The check() method repeatedly fires the given probe until it’s satisfied or times out.
Scalability
As the system grows in data volume, traffic volume or complexity there are reasonable ways of dealing with that growth.
Designing data-intensive applications by Martin Kleppmann
Scaling up
more powerful machine
Scaling out
more machines
Schema-on-read
means write your data first, figure out what it is later.
Schema-on-write
figure out what your data is first, then write it after
Telemetry
Monitoring of performance and error rates
Replica
A node that stores a copy of the database.
Leader-based replication
One of the replicas is the leader. Send writes through leader. The leader send the data to the followers.As part of the replication log or change stream.
Synchronous replication:
Wait for followers to confirm success before sending success to the user.
Semi synchronous replication:
When at least 2 nodes have an up-to-date copy a success response is returned to the user.
Chain replication
WAL log
binary log
Eventual consistency
Monotonic reads
In replication, users can see in the past.