The Code Codex
Theme
← Notes / Architecture

note · table17 Oct 2024 · 2 min

Tech glossary

OK, who hasn’t heard someone use a term or acronym that sums something up nicely, but you didn’t know it?

That’s why we are going to centralize a few here and expand our buzzword vocabulary.

Reliability
TermMeaning
SPoFSingle point of failure: the component that centralizes so much responsibility that, if it goes down, everything goes down
SLAService Level Agreement: the commitment to the customer, usually with penalties (e.g. 99.9% availability per month)
SLOService Level Objective: the team’s internal target, usually stricter than the SLA
SLIService Level Indicator: the metric actually measured (e.g. % of successful requests under 300 ms)
MTTRMean Time To Recovery: how long, on average, it takes to get back to normal after a failure
RTO / RPOIn disasters: how long the system can be down (RTO) and how much data can be lost (RPO)
Circuit breakerStops calling a failing service for a while, so as not to make things worse
Data and distributed systems
TermMeaning
ACIDAtomicity, Consistency, Isolation and Durability: the guarantees of a transaction in a relational database
CAP theoremDuring a network partition, a distributed system chooses between consistency and availability
Eventual consistencyData may diverge between replicas for a while, but it converges
IdempotencyRunning the same operation many times has the same effect as running it once (essential for retries)
BackpressureThe consumer signals the producer that it is overloaded, so the producer slows down
Delivery
TermMeaning
Blue-greenTwo versions in production side by side; traffic switches all at once and rollback is instant
CanaryThe new version gets a small fraction of traffic before going to everyone
Feature flagTurns a feature on and off without a new deploy
PoC / MVPProof of concept (can it be done?) and minimum viable product (is it worth it for the user?)
Team life
TermMeaning
Bus factorHow many people need to leave the team for a project to stall. If the answer is 1, there is a problem
BikesheddingSpending too much time discussing trivial details while the important stuff goes unnoticed
Yak shavingThe chain of side tasks you need to solve before you can do the original task
ToilManual, repetitive, automatable work that grows along with the system
KISS / DRY / YAGNIKeep it simple; don’t repeat yourself; you aren’t gonna need it (don’t build it before it’s time)