System Design Space
Knowledge graphSettings

Updated: June 24, 2026 at 4:23 PM

PostgreSQL: history and architecture

medium

PostgreSQL as a transactional core: MVCC, WAL, isolation levels, indexes, replication, extensibility, and a practical comparison with MySQL.

PostgreSQL ends up at the center of so many systems that it is easy to treat it as a boring default. This chapter is valuable because it restores respect for why it gets chosen there so often.

In real work, it helps frame PostgreSQL through MVCC, WAL, extensibility, indexes, and execution plans: the properties that actually define a reliable transactional core, not just familiar SQL syntax.

In interviews and architecture discussions, the chapter is strongest when you can explain a Postgres decision through transactional guarantees, expressive SQL, and a well-understood operating model rather than habit.

Practical value of this chapter

Transactional core

Use PostgreSQL as the transactional backbone when ACID guarantees, expressive queries, and predictable consistency matter.

Indexes and planner

Design schema together with index strategy and plan analysis, not as a separate afterthought.

Operational stability

Treat autovacuum, bloat control, WAL archiving, and replication as first-class architecture concerns.

Interview articulation

Justify a Postgres choice through data integrity, expressive SQL, and known operational trade-offs.

Decision frame and editorial focus

Chapter focus

PostgreSQL as a transactional core: MVCC, WAL, indexes, and operational trade-offs

Workload profile

Look at the critical user path: transactions, key-based reads, indexes, p95/p99 latency, and recovery behavior.

Good fit

The chapter should answer why this engine fits an operational/OLTP path, cache tier, or write-heavy model.

Boundary and risk

Avoid universal claims: every engine has a price in consistency, migrations, memory, indexing, or operational discipline.

Connect next

Compare against the database-selection framework, replication/sharding, and neighboring operational engines.

Source

PostgreSQL

History, transactional core, replication, extensibility, and the PostgreSQL ecosystem.

Перейти на сайт

PostgreSQL is a relational database management system that teams most often place in the most sensitive layer — the transactional core of an application, where the cost of getting it wrong is highest. That is why people look first at ACID guarantees, multiversion concurrency control (MVCC), and predictable isolation levels.

When a node goes down, what protects the data is not one feature but a chain of mechanisms: the write-ahead log (WAL), replication in its streaming and logical variants, and point-in-time recovery.

In an interview or a design review, PostgreSQL is judged not by a feature checklist but by how it behaves under load: the workload profile, the query planner, the indexing strategy, read replicas, and the operational cost of autovacuum — which is easy to underestimate until the first incident.

In short: a free, open-source object-relational DBMS that chose extensibility and reliable transactions as its top priorities, rather than the raw speed of a single operation.

History: key milestones

1982-1994

Ingres -> POSTGRES

PostgreSQL evolved from the Ingres project at UC Berkeley and the POSTGRES system.

1994-1996

Postgres95

Postgres95 added an SQL interpreter and gave the database a modern direction.

1996-1997

PostgreSQL

The project was renamed PostgreSQL, and version 6.0 shipped in January 1997.

2005

8.0: Windows and PITR

The 8.0 branch brought native Windows support and point-in-time recovery.

2010

9.0: streaming replication

Streaming replication turned hot standby and read scaling into a built-in scenario rather than hand-rolled plumbing.

2017

10: logical replication

A new versioning scheme and built-in logical replication expand migration and integration options.

2023

16: mature modern branch

The 14-16 series improves performance, concurrency, and replication under heavy workloads.

2024

17: VACUUM and logical replication

PostgreSQL 17 improves planning, reduces VACUUM memory usage, and simplifies high-availability setups with logical replication.

Key PostgreSQL architecture properties

Object-relational DBMS

The extensible core is what lets you add types, operators, and indexes for your own domain model without forking the database.

MVCC and isolation levels

Readers don't block writers: every transaction sees a consistent snapshot, and full serializable behavior is available through SSI when you need it.

Extensible types and indexes

Different data shapes get their own indexes: JSON/JSONB, arrays, ranges, and user-defined types, backed by GiST, GIN, SP-GiST, and BRIN.

WAL-based replication

Built-in replication streams the WAL; choosing between asynchronous and synchronous mode is a direct trade-off between write latency and the risk of losing data on failure.

PostgreSQL architecture by layers

To see where a query loses time and where you can speed it up, it helps to trace the data path through the layers — from drivers and the query planner down to MVCC, WAL, and replication.

Clients and protocol
libpqBinary protocolDriversAuth/TLS
Layer transition
SQL layer
ParserPlannerExecutorCatalog metadata
Layer transition
MVCC and transactions
SnapshotsIsolation levelsSerializable (SSI)
Layer transition
Storage and indexes
HeapB-treeGIN/GiST/BRINWAL
Layer transition
Replication
WAL streamingAsynchronousSynchronousStandby replica
Layer transition
OS + hardware
FilesystemDiskCPU/RAMNetwork

Key features

PostgreSQL is known for strong extensibility, a rich type system, and a broad extension ecosystem.

Extensibility

User-defined typesProcedural languagesForeign data wrappers

Rich data types

JSONBArraysRange typesPostGIS types

Ecosystem

TimescaleDBGreenplumDerivative systems

DDL and DML: how a request flows

DDL changes structure and metadata, while DML works with the data itself — and the two take different processing paths. The visualization below walks each route step by step.

How a request flows through PostgreSQL

Comparing the execution chain for DDL (schema) and DML (data)

Interactive replayStep 1/5

Active step

1. Parse + plan

The planner chooses an efficient plan and indexes.

Data operations

  • DML works with data and indexes without changing schema.
  • MVCC enables concurrent access without read locks.
  • Replication behavior depends on WAL mode and settings.
Row-level operationsWALMVCC

Source

MySQL

License, the LAMP stack, and MySQL's evolution.

Перейти на сайт

PostgreSQL and MySQL: practical comparison

Data model

PostgreSQL: Object-relational, extensible types and functions.

MySQL: Relational DBMS, often used in the LAMP stack.

License and management

PostgreSQL: Permissive PostgreSQL License and development through PGDG.

MySQL: GPL + commercial licenses; ownership through Sun and Oracle.

Concurrency and integrity

PostgreSQL: MVCC and isolation levels out of the box, plus strong integrity guarantees.

MySQL: InnoDB is the default engine with transactions and foreign keys.

Ecosystem

PostgreSQL: Extensions, foreign data wrappers, and derivative systems.

MySQL: Strong web ecosystem and rich history of use in LAMP.

When PostgreSQL is often chosen over MySQL

This is not a blanket verdict that “Postgres wins,” but a list of situations where its properties remove a concrete pain:

  • When the domain model is more than flat tables, the extensible architecture and rich set of data types spare you from bending the data to fit the database.
  • Under heavy concurrent load, MVCC and advanced isolation levels reduce the mutual blocking between transactions.
  • WAL-based replication gives a clear path to scaling reads and designing failover — without third-party plumbing.
  • The permissive license and strong extension ecosystem lower the risk of vendor lock-in as the system grows.

Related chapters

Enable tracking in Settings