PostgreSQL
storage Core Postgres Capabilities
Use Postgres with JSONB to store JSON documents in a database, search and index them - instead of MongoDB.
Use Postgres for full-text search instead of Elasticsearch with built-in search capabilities, ParadeDB, pgvector, or Torus for seamless Elixir/Ecto integration.
Use Postgres with TimescaleDB as a time-series database for monitoring, IoT, and analytics workloads.
Use Postgres with PostGIS for geospatial queries, mapping applications, and location-based services.
Use Postgres as a message queue with SKIP LOCKED instead of Kafka (if you only need a message queue), or as a job queue in Go with River. Also explore PGMQ for queue management.
Use Postgres for caching instead of Redis with UNLOGGED tables and TEXT as a JSON data type. Use stored procedures to add and enforce an expiry date for the data just like in Redis. Consider readyset for a dedicated cache service alternative.
Use Postgres as a cron daemon to take actions at certain times, like sending emails, with pg_cron or pg_timetable.
Use Postgres to generate JSON in the database, write no server-side code and directly give it to the API using built-in JSON functions.
Use Postgres for auditing with pgaudit, temporal_tables, supa_audit, or pgMemento to track all database changes and maintain compliance.
Store and handle JSON Web Tokens with pgjwt for authentication and authorization directly in your database.
Store encrypted secrets and other sensitive data in your database with Supabase Vault for secure key management.
extension Postgres Extensions & Ecosystem
Use Postgres with pg_analytics as an in-memory OLAP database powered by Apache Datafusion for analytical queries.
Deliver GraphQL APIs from Postgres with PostGraphile or Hasura, automatically generating a GraphQL schema from your database schema.
Use Postgres as a column-oriented database with Hydra Columnar, cstore_fdw, or ParadeDB pg_analytics and pg_lakehouse for analytical workloads.
Use Postgres for graph data with Apache AGE or Gel to model and query complex relationships and networks.
Access and query data from external sources using foreign data wrappers, connecting to APIs, files, and other databases from within Postgres.
Use alternative query languages in Postgres with plprql for PRQL or pg_graphql for GraphQL queries directly in the database.
Make HTTP requests from your SQL queries using pgsql-http or pg_net to integrate with external APIs and webhooks.
Use Postgres built-in LISTEN/NOTIFY as a publish/subscribe or job server for real-time event-driven architectures.
Eliminate the need for separate systems and data transfers. Perform ML operations directly on your data where it resides with PostgresML.
Serve a fully RESTful API from any existing PostgreSQL database with PostgREST, automatically generating endpoints from your schema.
Stream and replicate data from Postgres to data warehouses, queues, and storage engines with PeerDB for efficient data movement.
Use Electric to stream PostgreSQL changes to clients with shape-based, partial replication for real-time collaborative applications.
Use Postgres for AI agent workflows with Tiger Data's MCP server integration, zero-copy fast forking for instant sandboxed environments, and hybrid search combining pgvectorscale and BM25 full-text search via pg_textsearch.
