Architecture terms

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.