Expedition. Free, on-demand.

Technical tracks for practitioners, outcomes for leaders.

PostgreSQL, which almost everyone just calls "Postgres," started in 1986 as the POSTGRES research project at UC Berkeley, led by Professor Michael Stonebraker. The goals were ambitious for the time: support complex data types, user-defined rules, and extensibility well beyond what relational systems offered. Forty years later, those design decisions look pretty prophetic.

In 1996 the project added SQL support, took the PostgreSQL name, and moved to open community development. It has shipped a major release roughly every year since. Postgres is built by a global community of hundreds of contributors, and no single company controls it. A small core team coordinates releases, and the PostgreSQL Global Development Group holds the copyright.

Key Milestones

YearMilestone
1986POSTGRES research project begins at UC Berkeley
1996SQL support added and the project is renamed PostgreSQL
1999MVCC arrives in 6.5, so readers and writers stop blocking each other
2001Write-ahead logging (WAL) in 7.1
2008Full-text search moves into core in 8.3
2010Built-in streaming replication in 9.0
2012JSON data type in 9.2
2014JSONB in 9.4 adds indexable, binary document storage
2016Parallel query in 9.6 for analytical workloads
2017Declarative partitioning and logical replication in Postgres 10
2023pgvector 0.5.0 adds HNSW indexes, making Postgres a serious option for AI workloads
2025Postgres 18 introduces asynchronous I/O

How Postgres Compares

Postgres vs MySQL / MariaDB

Postgres has richer data types (JSONB, arrays, ranges, hstore), more index types (GIN, GiST, BRIN), and transactional DDL, so you can roll back a schema change if a migration fails halfway. MySQL has historically been easier to stand up for simple workloads. That gap is mostly gone, and Postgres gives you a lot more room as your application grows.

Postgres vs Oracle / SQL Server

You get window functions, CTEs, materialized views, partitioning, and parallel query without per-core licensing. AWS, Google, Microsoft, and Snowflake all offer fully managed Postgres, so you can get vendor support without the enterprise price tag.

Postgres vs NoSQL (MongoDB, DynamoDB)

JSONB gives you the document flexibility that pushed a lot of teams toward MongoDB, and you keep joins, transactions, and constraints. For most applications, one system that does both is simpler than running two.

Postgres vs Specialized Databases

Extensions like pgvector (vector search), pg_partman (automated partitioning), and PostGIS (geospatial) compete with purpose-built databases in their own domains, while you keep a single operational stack.

Enterprise Ready

Postgres is a developer favorite, and it also holds up to strict enterprise requirements:

  • ACID compliance, including serializable isolation
  • Row-level security policies that control which rows a user can see or modify
  • Audit logging with the pgaudit extension, at the session and object level
  • Encryption with TLS for data in transit. Encryption at rest is usually handled at the storage or filesystem layer, or by your managed provider, since core Postgres doesn't ship transparent data encryption.
  • Access control with roles, grants, column-level privileges, and security definer functions

Who Uses Postgres in Production?

Postgres runs mission-critical workloads at companies of every size, from startups to the Fortune 500, plus a long list of government agencies. Instagram and Spotify are two of the better-known names that have talked publicly about running large Postgres deployments.

Built for Scale

Postgres handles serious workloads out of the box:

  • High write throughput on modern hardware, tens of thousands of writes per second or more depending on your schema and hardware
  • Billions of rows with declarative partitioning
  • Thousands of concurrent connections with a connection pooler like PgBouncer
  • Multi-TB databases running in production all over the world

Scaling Strategies

  • Read replicas offload read traffic using streaming replication.
  • Partitioning splits large tables by range, list, or hash so queries and maintenance touch less data.
  • Sharding with Citus distributes data across nodes for horizontal scale.
  • pg_lake moves analytics and historical data out to Iceberg, where Snowflake can query it.

Snowflake Postgres takes care of a lot of the scaling work for you: resizing instances, adding read replicas, and offloading analytics to Snowflake with pg_lake.

Common Use Cases

Postgres shows up almost everywhere:

  • Web and mobile backends. It's the default for Rails, Django, Node.js, and Spring Boot apps.
  • SaaS platforms with multi-tenant designs using row-level security or schema-per-tenant isolation.
  • Financial services, where ACID transactions and audit logging matter.
  • Geospatial and mapping. PostGIS powers location services, logistics, and GIS platforms.
  • AI and machine learning. pgvector stores and searches embeddings for RAG, recommendations, and semantic search.
  • IoT and time-series, using partitioning or extensions like TimescaleDB for sensor and event data.
  • Data integration. Foreign data wrappers connect Postgres to S3, other databases, and APIs.

Conclusion

Related Resources

Get started with Snowflake's managed Postgres service.


The full reference for every Postgres feature.


How the 1986 design goals predicted what we need from databases today.


Why Postgres is a good default for modern applications.


Keep an eye on your Postgres instance's performance and health.

Updated Oct 27, 2026

This content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances