2025-09-03 –, B05-B06
When a new requirement appears, whether it's document storage, pub/sub messaging, distributed queues, or even full-text search, Postgres can often handle it without introducing more infrastructure.
This talk explores how to leverage Postgres' native features like JSONB, LISTEN/NOTIFY, queueing patterns and vector extensions to build robust, scalable systems without increasing infrastructure complexity.
You'll learn practical patterns that extend Postgres just far enough, keeping systems simpler, more maintainable, and easier to operate, especially in small to medium projects or freelancing setups, where Postgres often already forms a critical part of the stack.
Postgres might not replace everything forever - but it can often get you much further than you think.
When building modern systems, it's easy to reach for specialized tools as new requirements pop up: a document store like MongoDB for flexible schemas, Kafka for pub/sub, Redis for distributed queuing, or Weaviate for storing vectors.
But what if you could meet many of these needs by simply extending the Postgres database you likely already have?
In this talk, we’ll explore how Postgres' powerful native features such as:
- JSONB for document storage
- LISTEN/NOTIFY for pub/sub messaging
- SELECT FOR UPDATE SKIP LOCKED for queueing
- an extension for vectors
can be used to solve real-world problems without introducing new infrastructure.
Throughout the talk, we’ll walk through practical code examples in Python and SQL to show exactly how these patterns can be implemented in real projects.
The goal isn’t to suggest that Postgres replaces purpose-built tools like Kafka, Redis, or MongoDB forever. Specialized systems still have their place, especially at larger scales. However, by reusing Postgres intelligently, you can delay these decisions until they are truly necessary,keeping your system simpler, easier to operate, and more maintainable in the meantime.
Especially for freelancers, startups, and small teams, reducing system complexity early on means faster iteration, fewer operational headaches, and lower costs. And since Postgres is already present in most modern tech stacks, these capabilities are often just a few SQL queries away.
Outline
- Introduction: re-using existing infrastructure instead of introducing new systems to focus on solving problems
- Pub/Sub with Postgres: messaging between services using LISTEN/NOTIFY
- Queuing with Postgres: building distributed queues with SELECT FOR UPDATE SKIP LOCKED
- Document Storage with Postgres: handling flexible schemas and semi-structured data using JSONB
- Conclusion: when re-using Postgres makes sense - and when specialized systems are needed
Bonus: storing vectors with Postgres for your AI workloads: adding efficient vector functionality by installing an extension
Intermediate
Prerequisites:- Knowledge of SQL
- Knowledge of Python
- Basic knowledge about Postgres
Need pub/sub, distributed queues, document storage, or vectors? You might not need Kafka, Redis, MongoDB, or a vector database - yet. Postgres can handle more than you think. Join me as we dive into real-world Python + SQL patterns! 🎤 #PyCon #Postgres
Seasoned Software & Data Engineering Professional with extensive experience in high-frequency trading systems, data warehousing, and cloud solutions. Expert in optimizing mission-critical systems and implementing engineering best practices. Specialized in Python, SQL and cloud technologies.
Currently working as a Freelance Developer focusing on software and data engineering.
Skilled in developing distributed systems, data pipelines, and performance optimization, consistently delivering solutions that maximize business value.