# Heroku Postgres

Heroku Postgres is a managed SQL database service provided by Heroku, based on PostgreSQL.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Heroku Announces Heroku Postgres Advanced Tier for Higher Performance and Scalability

DevFeed: [Heroku Announces Heroku Postgres Advanced Tier for Higher Performance and Scalability](<https://devfeed.tech/articles/introducing-the-next-generation-of-heroku-postgres-unlocking-performance-scale-and-zero-friction-ops-26459.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/introducing-the-next-generation-of-heroku-postgres/>)

Author: Jonathan Brown

Published: 2025-10-14T15:00:18Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Database](<https://devfeed.tech/topics/database.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [aws](<https://devfeed.tech/tags/aws.md>), [database](<https://devfeed.tech/tags/database.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [news](<https://devfeed.tech/tags/news.md>), [performance](<https://devfeed.tech/tags/performance.md>), [product-features](<https://devfeed.tech/tags/product-features.md>), [scalability](<https://devfeed.tech/tags/scalability.md>)

### AI overview

Heroku announces a new Heroku Postgres Advanced tier built on AWS database technologies. The article describes an architecture intended to improve performance, storage scalability, connection capacity, compute and storage flexibility, and operational automation.

### Source excerpt

We are thrilled to announce the next generation of Heroku Postgres to power a data foundation for the next wave of intelligent and mission-critical applications. This roadmap has been driven by listening closely to our customers, culminating in the introduction of a new Heroku Postgres Advanced tier. This revolutionary data foundation is designed to eliminate previous scaling limits, unlock unprecedented architectural flexibility and performance, and reduce operational friction. As the AI PaaS from Salesforce, Heroku is the force multiplier for developers building this future with an integrated platform with powerful capabilities made simple to use - removing friction along the software delivery lifecycle. We invite you to sign up for the pilot. The post Introducing the Next Generation of Heroku Postgres - Unlocking Performance, Scale, and Zero-Friction Ops appeared first on Heroku.

## From Heroku to Neon: The dev.to Story

DevFeed: [From Heroku to Neon: The dev.to Story](<https://devfeed.tech/articles/from-heroku-to-neon-the-dev-to-story-5200.md>)

Original publisher: [Read original article](<https://neon.com/blog/dev-from-heroku-to-neon>)

Author: Carlota Soto

Published: 2025-06-19T16:04:37Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [case-studies](<https://devfeed.tech/tags/case-studies.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [database](<https://devfeed.tech/tags/database.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [postgres](<https://devfeed.tech/tags/postgres.md>)

### AI overview

A case study of DEV's migration from Heroku Postgres to Neon as its developer community and database workload grew. It describes Heroku's scaling rigidity, unused capacity, limited replica options, operational overhead, and the search for a provider offering more flexible scaling and developer-focused capabilities.

### Source excerpt

"We didn't just want a better Postgres database, we wanted a partner who shared our focus on developers. With Neon, we finally have a setup that scales with our platform and our values." (Peter Frank, DEV Co-Founder) DEV needs no introduction. For millions of developers getting s...

## Introducing the Official Heroku MCP Server

DevFeed: [Introducing the Official Heroku MCP Server](<https://devfeed.tech/articles/introducing-the-official-heroku-mcp-server-26456.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/introducing-official-heroku-mcp-server/>)

Author: Anush DSouza

Published: 2025-04-10T15:00:42Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Development](<https://devfeed.tech/topics/development.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [cli](<https://devfeed.tech/tags/cli.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-ai](<https://devfeed.tech/tags/heroku-ai.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-on-heroku](<https://devfeed.tech/tags/mcp-on-heroku.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [news](<https://devfeed.tech/tags/news.md>)

### AI overview

Heroku announces its official Heroku MCP Server, which exposes Heroku platform capabilities to AI agents through Model Context Protocol. The release supports application lifecycle management, Heroku Postgres operations, add-on management, scaling, logs, and monitoring, using the Heroku CLI as its execution engine.

### Source excerpt

We're excited to announce the launch of the Heroku MCP Server, designed to bridge the gap between agent-driven development and Heroku's AI PaaS. Having defined the platform experience for apps in the cloud, Heroku extends our developer and operator experience to AI capabilities. With the Heroku MCP Server, you can now expose Heroku's robust platform [...] The post Introducing the Official Heroku MCP Server appeared first on Heroku.

## Optimizing Data Reliability: Heroku Connect & Drift Detection

DevFeed: [Optimizing Data Reliability: Heroku Connect & Drift Detection](<https://devfeed.tech/articles/optimizing-data-reliability-heroku-connect-drift-detection-26480.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/optimizing-data-reliability-heroku-connect-drift-detection/>)

Author: Siraj Ghaffar

Published: 2024-06-26T02:43:00Z

Content type: article

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Database](<https://devfeed.tech/topics/database.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [crm](<https://devfeed.tech/tags/crm.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-connect](<https://devfeed.tech/tags/heroku-connect.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [integration](<https://devfeed.tech/tags/integration.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [salesforce](<https://devfeed.tech/tags/salesforce.md>), [sync](<https://devfeed.tech/tags/sync.md>), [ui](<https://devfeed.tech/tags/ui.md>), [view](<https://devfeed.tech/tags/view.md>)

### AI overview

This Heroku article explains improvements to Heroku Connect's drift detection. It describes how Salesforce data is polled into Heroku Postgres, why long-running transactions can cause missed changes, and how the updated feature detects and addresses drift more efficiently while maintaining eventual consistency.

### Source excerpt

Heroku Connect makes it easy to sync data at scale between Salesforce and Heroku Postgres. You can build Heroku apps that bidirectionally share data in your Postgres database with your contacts, accounts, and other custom objects in Salesforce. Easily configured with a point-and-click UI, you can get the integration up and running in minutes without [...] The post Optimizing Data Reliability: Heroku Connect & Drift Detection appeared first on Heroku.

## Introducing the Heroku Postgres Connector for Salesforce Data Cloud

DevFeed: [Introducing the Heroku Postgres Connector for Salesforce Data Cloud](<https://devfeed.tech/articles/introducing-the-heroku-postgres-connector-for-salesforce-data-cloud-26458.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/introducing-the-heroku-postgres-connector-for-salesforce-data-cloud/>)

Author: Vivek Viswanathan

Published: 2024-05-10T21:00:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [apps](<https://devfeed.tech/tags/apps.md>), [customer](<https://devfeed.tech/tags/customer.md>), [data-analytics](<https://devfeed.tech/tags/data-analytics.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [news](<https://devfeed.tech/tags/news.md>), [platform](<https://devfeed.tech/tags/platform.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [salesforce](<https://devfeed.tech/tags/salesforce.md>)

### AI overview

Heroku announces the Heroku Postgres Connector for Salesforce Data Cloud, a no-cost connector that synchronizes data one way from Heroku Postgres to Data Cloud. It is intended to help unify Postgres data with customer profiles, analytics, and applications.

### Source excerpt

Heroku Postgres is one of the world's largest managed data stores. Our customers rely on Heroku Postgres to store valuable data, which powers a range of experiences and services they build on Heroku. Salesforce Data Cloud integrates all your company's data into the Einstein 1 Platform, creating a comprehensive customer view for personalized engagements, analytics, [...] The post Introducing the Heroku Postgres Connector for Salesforce Data Cloud appeared first on Heroku.

## How to Use pgvector for Similarity Search on Heroku Postgres

DevFeed: [How to Use pgvector for Similarity Search on Heroku Postgres](<https://devfeed.tech/articles/how-to-use-pgvector-for-similarity-search-on-heroku-postgres-26483.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/pgvector-for-similarity-search-on-heroku-postgres/>)

Author: Valerie Woolard

Published: 2023-11-16T00:42:00Z

Content type: tutorial

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [embeddings](<https://devfeed.tech/tags/embeddings.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [pgvector](<https://devfeed.tech/tags/pgvector.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [similarity-search](<https://devfeed.tech/tags/similarity-search.md>)

### AI overview

This tutorial explains how to use the pgvector extension on Heroku Postgres for similarity search. It describes supported databases, vector embeddings, and a Python example using Wikipedia2Vec to generate and store embeddings.

### Source excerpt

Introducing pgvector for Heroku Postgres Over the past few weeks, we worked on adding pgvector as an extension on Heroku Postgres. We're excited to release this feature, and based on the feedback on our public roadmap, many of you are too. We want to share a bit more about how you can use it and [...] The post How to Use pgvector for Similarity Search on Heroku Postgres appeared first on Heroku.

## Heroku Postgres Adds pgvector Extension for Vector Similarity Search

DevFeed: [Heroku Postgres Adds pgvector Extension for Vector Similarity Search](<https://devfeed.tech/articles/enhancing-heroku-postgres-with-pgvector-generating-ai-insights-26484.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/pgvector-launch/>)

Author: Jonathan Brown

Published: 2023-10-26T21:18:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [database](<https://devfeed.tech/tags/database.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [news](<https://devfeed.tech/tags/news.md>), [pgvector](<https://devfeed.tech/tags/pgvector.md>), [postgres](<https://devfeed.tech/tags/postgres.md>)

### AI overview

Heroku introduces the pgvector extension for Heroku Postgres. It supports high-dimensional vector similarity searches and is compatible with Production-tier Postgres 15 databases at no additional charge.

### Source excerpt

We're pleased to introduce the pgvector extension on Heroku Postgres. In an era where large language models (LLMs) and AI applications are paramount, pgvector provides the essential capability for performing high-dimensional vector similarity searches. This allows Heroku Postgres to quickly find similar data points in complex data, which is great for applications like recommendation systems [...] The post Enhancing Heroku Postgres with pgvector: Generating AI Insights appeared first on Heroku.

## Improving the Heroku Postgres Extension Experience

DevFeed: [Improving the Heroku Postgres Extension Experience](<https://devfeed.tech/articles/improving-the-heroku-postgres-extension-experience-26452.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/improving-the-heroku-postgres-extension-experience/>)

Author: Jon Daniel

Published: 2023-07-15T00:04:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [incident](<https://devfeed.tech/topics/incident.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [extension](<https://devfeed.tech/tags/extension.md>), [gis](<https://devfeed.tech/tags/gis.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [incident](<https://devfeed.tech/tags/incident.md>), [news](<https://devfeed.tech/tags/news.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

Heroku announces that Heroku Postgres extensions can again be installed in any schema for non-Essential-tier databases. The feature is opt-in for new and existing databases, while existing extension locations and database structure remain unchanged.

### Source excerpt

PostgreSQL extensions are powerful tools that allow developers to extend the functionality of PostgreSQL beyond its basic types and functions. These extensions can connect your database to an external PostgreSQL instance (postgres_fdw), add native GIS functionality (postgis), standardize address information (address_standardizer), and more. Extensions are arguably one of PostgreSQL's greatest features and are partially responsible [...] The post Improving the Heroku Postgres Extension Experience appeared first on Heroku.

## Introducing New Heroku Postgres Plans

DevFeed: [Introducing New Heroku Postgres Plans](<https://devfeed.tech/articles/introducing-new-heroku-postgres-plans-26455.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/introducing-new-heroku-postgres-plans/>)

Author: Jonathan Brown

Published: 2023-06-30T23:40:04Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Database](<https://devfeed.tech/topics/database.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [news](<https://devfeed.tech/tags/news.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [storage](<https://devfeed.tech/tags/storage.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Heroku introduces new Heroku Postgres plans that allow customers to increase database disk capacity without adding compute or memory. The largest database plan now supports up to 6TB instead of 4TB.

### Source excerpt

Sometimes your data grows and requires a bigger disk without a need for more compute or memory. Previously, our offerings were a bit too inflexible. We also didn't want to limit our largest database at 4TB. We released new Heroku Postgres plans that give you more flexibility when scaling up your database storage needs on [...] The post Introducing New Heroku Postgres Plans appeared first on Heroku.

## Heroku Private Spaces Expand to Mumbai and Montreal

DevFeed: [Heroku Private Spaces Expand to Mumbai and Montreal](<https://devfeed.tech/articles/heroku-private-spaces-expand-to-mumbai-and-montreal-26488.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/private-spaces-expand-to-mumbai-and-montreal/>)

Author: Ethan Limchayseng

Published: 2023-05-03T20:06:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [spaces](<https://devfeed.tech/topics/spaces.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [Redis](<https://devfeed.tech/topics/redis.md>)

Tags: [apache-kafka](<https://devfeed.tech/tags/apache-kafka.md>), [canada](<https://devfeed.tech/tags/canada.md>), [customers](<https://devfeed.tech/tags/customers.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-enterprise](<https://devfeed.tech/tags/heroku-enterprise.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [india](<https://devfeed.tech/tags/india.md>), [news](<https://devfeed.tech/tags/news.md>), [private-spaces](<https://devfeed.tech/tags/private-spaces.md>), [product-features](<https://devfeed.tech/tags/product-features.md>), [redis](<https://devfeed.tech/tags/redis.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [support](<https://devfeed.tech/tags/support.md>)

### AI overview

Heroku announces a limited release of Private Spaces in Mumbai and Montreal. The new regions support Private Spaces and several related Heroku products, with access initially limited to existing Private Spaces customers accepted into the Limited Release program.

### Source excerpt

This month, we're expanding the Heroku platform with a limited release of our Private Spaces product in two new regions, India (Mumbai) and Canada (Montreal), enabling customers to maintain even greater control over where data is stored and processed. These two new regions will fully support Heroku Private Spaces, Heroku Shield Private Spaces, Heroku Postgres, [...] The post Heroku Private Spaces Expand to Mumbai and Montreal appeared first on Heroku.

## Heroku Pricing and Our Low-Cost Cloud Plans

DevFeed: [Heroku Pricing and Our Low-Cost Cloud Plans](<https://devfeed.tech/articles/heroku-pricing-and-our-low-cost-cloud-plans-26472.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/new-low-cost-plans/>)

Author: Andrew Fawcett

Published: 2022-09-27T01:59:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>)

Tags: [3](<https://devfeed.tech/tags/3.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [cost](<https://devfeed.tech/tags/cost.md>), [dynos](<https://devfeed.tech/tags/dynos.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-key-value-store](<https://devfeed.tech/tags/heroku-key-value-store.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [news](<https://devfeed.tech/tags/news.md>), [pricing](<https://devfeed.tech/tags/pricing.md>)

### AI overview

Heroku announces low-cost cloud plans, including Eco Dynos priced at $5 for 1,000 shared compute hours per month. Eco Dynos sleep after 30 minutes without web traffic and are positioned for personal projects and small non-production applications. The update also introduces low-cost Heroku Postgres and Heroku Key-Value Store plans, while renaming Hobby dynos to Basic.

### Source excerpt

Update November 7th, 2022: These plans are now generally available. Take a look at our launch announcement post for more information on migration. When we announced Heroku's Next Chapter last month, we received a lot of feedback from our customers. One of the things that stood out was interest in a middle ground between our [...] The post Heroku Pricing and Our Low-Cost Cloud Plans appeared first on Heroku.

## Unfinished Business with Postgres

DevFeed: [Unfinished Business with Postgres](<https://devfeed.tech/articles/unfinished-business-with-postgres-41228.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2022/05/18/Unfinished-Business-with-Postgres/>)

Author: Map

Published: 2022-05-18T16:52:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [databases](<https://devfeed.tech/tags/databases.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [incident](<https://devfeed.tech/tags/incident.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

A personal account of Heroku Postgres, describing how a small team managed more than 1.5 million Postgres databases, handled recurring operational problems, and considered the future of Postgres services.

### Source excerpt

7 years ago I left Heroku. Heroku has had a lot of discussion over the past weeks about its demise, whether it was a success or failure, and the current state. Much of this was prompted by the recent, and on-going security incident, but as others have pointed out the product has been frozen in time for some years now. I'm not here to rehash the many debates of what is the next Heroku, or whether it was a success or failure, or how it could have been different. Heroku is still a gold standard of developer experience and often used in pitches as Heroku for X. There were many that tried to imitate Heroku for years and failed. Heroku generates sizable revenue to this day. Without Heroku we'd all be in a worse place from a developer experience perspective. But I don't want to talk about Heroku the PaaS. Instead I want share a little of my story and some of the story of Heroku Postgres (DoD - Department of Data as we were internally known). I was at Heroku in a lot of product roles over the course of 5 yrs, but most of my time was with that DoD team. When I left Heroku it was a team of about 8 engineers running and managing over 1.5m Postgres databases-a one in a million problem was once a week, we engineered a system that allowed us to scale without requiring a 50 person ops team just for databases This will be a bit of a personal journey, but also hopefully give some insights into what the vision was and hopefully a bit of what possibilities are for Postgres services in the future. I wasn't originally hired to work on anything related to Postgres. As an early PM I first worked on billing, then later on core languages and launching the Python support for Heroku. It was a few months in when I found myself having conversations with many of the internal engineers about Postgres. "Why aren't you using hstore?", "Transactional DDL to rollback transactions is absolutely huge!", "Concurrent index creation runs in the background while not holding a lock, this should always be ho

## The Rule of Thirds: A Follow-up on Heroku Postgres Team Planning

DevFeed: [The Rule of Thirds: A Follow-up on Heroku Postgres Team Planning](<https://devfeed.tech/articles/the-rule-of-thirds-followup-41150.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2013/08/13/The-Rule-of-Thirds-followup/>)

Author: Map

Published: 2013-08-13T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [data](<https://devfeed.tech/topics/data.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [customers](<https://devfeed.tech/tags/customers.md>), [data](<https://devfeed.tech/tags/data.md>), [discussion](<https://devfeed.tech/tags/discussion.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [teams](<https://devfeed.tech/tags/teams.md>)

### AI overview

This follow-up explains how the Heroku Postgres team uses the Rule of Thirds as an approximate prioritization exercise. It recommends gathering customer and market data, discussing that information informally, and collaboratively collecting and organizing feature ideas.

### Source excerpt

Several months back I wrote about how we do higher level, long term planning within the Heroku Postgres team. If you haven't read the previous article please start there. The exercise or rule of thirds is intended to be approximate prioritization and not a perfect science. Since that time I'm familiar with some teams both in and out of Heroku who have attempted this exercise with varying levels of success. We've now done this process 4 times within the team and after the most recent exercise attempted to take some time to internalize why its worked well, creating some more specifics about the process. Heres an attempt to provide even more clarity: Gather data ahead of time Its really common to have a list things to work on, but knowing the impact of those is commonly pure speculation. There may be some people that talk to customers, but even then its a subset of your actual customer base. Going into the exercise as much data you can have ahead of time on impact of features and specific problems helps. In our case we do this by: Surveying current customers and users Surveying attriters Engaging with customer facing teams to hear trends Input from external parties such as analysts on trends Allow for casual discussion We typically conduct our planning exercise at an offsite, this is a multi-day time of team bonding, planning, hacking. We intentionally schedule our planning excercise towards the end of the offsite. This allows us to have updates/presentations frmo the data we've gathered and from those that are customer facing. Presentations are meant to be short and direct, discussion can flow casually after. This gets a lot of people on the same page at a smaller level and reduces the problem of too many cooks in the kitchen come time for the actual exercise. The rule of thirds Creating the list Coming to the exercise itself... We begin by everyone writing a list of their ideas individually, this is meant to be a list of the features we want to place on the grid. At th

## A look at Foreign Data Wrappers

DevFeed: [A look at Foreign Data Wrappers](<https://devfeed.tech/articles/a-look-at-foreign-data-wrappers-41148.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2013/08/05/A-look-at-Foreign-Data-Wrappers/>)

Author: Map

Published: 2013-08-05T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [JOIN](<https://devfeed.tech/topics/join.md>)

Tags: [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [join](<https://devfeed.tech/tags/join.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A tutorial on PostgreSQL foreign data wrappers (FDWs), including how to enable postgres_fdw on PostgreSQL 9.3, configure a remote server and user mapping, define foreign tables, and query data across databases.

### Source excerpt

There are two particular sets of features that continue to keep me very excited about the momentum of Postgres. And while PostgreSQL has had some great momentum in the past few years these features may give it an entirely new pace all together. One is extensions, which is really its own category. Dimitri Fontaine was talking about doing a full series just on extensions, so here's hoping he does so I dont have to :) One subset of extensions which I consider entirely separate is the other thing, which is foreign data wrappers or FDWs. FDWs allow you to connect to other data sources from within Postgres. From there you can query them with SQL, join across disparate data sets, or join across different systems. Recently I had a good excuse to give the postgres_fdw a try. And while I've blogged about the Redis FDW previously, the Postgres one is particularly exciting because with PostgreSQL 9.3 it will ship as a contrib module, which means all Postgres installers should have it... you just have to turn it on. Let's take a look at getting it setup and then dig into it a bit. First, because I don't have Postgres 9.3 sitting around on my system I'm going to provision one from Heroku Postgres: $ heroku addons:add heroku-postgresql:crane --version 9.3 Once it becomes available I'm going to connect to it then enable the extension: $ heroku pg:psql BLACK -acraig # CREATE EXTENSION postgres_fdw; Now its there, so we can actually start using it. To use the FDW there's four basic things you'll want to do: Create the remote server Create a user mapping for the remote server Create your foreign tables Start querying some things The setup You'll only need to do each of the following once, once you're server, user and foreign table are all setup you can simply query away. This is a nice advantage over db_link which only exists for the set session. One downside I did find was that you can't use a full Postgres connection string, which would make setting it up much simpler. So onto setting

## Javascript Functions for PostgreSQL

DevFeed: [Javascript Functions for PostgreSQL](<https://devfeed.tech/articles/javascript-functions-for-postgresql-41143.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2013/06/25/Javascript-Functions-for-PostgreSQL/>)

Author: Map

Published: 2013-06-25T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>)

Tags: [functions](<https://devfeed.tech/tags/functions.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A tutorial on using JavaScript functions inside PostgreSQL with PL/v8 and JSON data. It presents example functions for extracting text and numeric values, and introduces a JSON selection function, noting that PostgreSQL 9.3 would add more built-in JSON support.

### Source excerpt

Javascript in Postgres has gotten a good bit of love lately, part of that is from Heroku Postgres recently adding support for Javascript and part from a variety of people championing the power of it such as @leinweber (Embracing the web with JSON and PLV8) and @selenamarie (schema liberation with JSON and PLV8). In a recent conversation it was pointed out that it seems a bit of headache to have to create your own functions, or at least having an initial collection would make it that much more powerful. While many can look forward to PostgreSQL 9.3 which will have a bit more built in support for JSON a few functions can really help make it more useful today. These are courtesy of Will Leinweber. For each of the following functions I'll highlight an example of using it as well. To get an idea of the data its being run on: select * from example; data -------------------------------------------- {"name":"Craig Kerstiens", + "age":27, + "siblings":1, + "numbers":[ + {"type":"work", + "number":"123-456-7890"}, + {"type":"home", + "number":"456-123-7890"}]} (1 row) get_text CREATE OR REPLACE FUNCTION get_text(key text, data json) RETURNS text AS $$ return data[key]; $$ LANGUAGE plv8 IMMUTABLE STRICT; Then using the function: select get_text('name', data) from example; get_text ---------------- Craig Kerstiens (1 row) get_numeric CREATE OR REPLACE FUNCTION get_numeric(key text, data json) RETURNS numeric AS $$ return data[key]; $$ LANGUAGE plv8 IMMUTABLE STRICT; Then using the function: select get_numeric('siblings', data) from example; get_text ---------------- 1 (1 row) json_select create or replace function json_select(selector text, data json) returns json as $$ exports = {}; (function(a){function z(a){return{sel:q(a)[1],match:function(a){return y(this.sel,a)},forEach:function(a,b){return x(this.sel,a,b)}}}function y(a,b){var c=[];x(a,b,function(a){c.push(a)});return c}function x(a,b,c,d,e,f){var g=a[0]===","?a.slice(1):[a],h=[],i=!1,j=0,k=0,l,m;for(j=0;j<g.length;j++){

## Postgres Indexing - A collection of indexing tips

DevFeed: [Postgres Indexing - A collection of indexing tips](<https://devfeed.tech/articles/postgres-indexing-a-collection-of-indexing-tips-41141.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2013/05/30/Postgres-Indexing-A-collection-of-indexing-tips/>)

Author: Map

Published: 2013-05-30T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [JOIN](<https://devfeed.tech/topics/join.md>)

Tags: [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [indexing](<https://devfeed.tech/tags/indexing.md>), [information-schema](<https://devfeed.tech/tags/information-schema.md>), [join](<https://devfeed.tech/tags/join.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgres-performance](<https://devfeed.tech/tags/postgres-performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [schema](<https://devfeed.tech/tags/schema.md>), [sql](<https://devfeed.tech/tags/sql.md>), [stat](<https://devfeed.tech/tags/stat.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A collection of PostgreSQL indexing tips covering unused-index analysis, indexing costs, and the trade-offs between composite and separate indexes. It includes SQL examples and Heroku tooling for examining index usage.

### Source excerpt

Even from intial reviews of my previous post on expression based indexes I received a lot of questions and feedback around many different parts of indexing in Postgres. Here's a mixed collection of valuable tips and guides around much of that. Unused Indexes In an earlier tweet I joked about some SQL that would generate the SQL to add an index to every column: # SELECT 'CREATE INDEX idx_' || table_name || '_' || column_name || ' ON ' || table_name || ' ("' || column_name || '");' FROM information_schema.columns; ?column? --------------------------------------------------------------------- CREATE INDEX idx_pg_proc_proname ON pg_proc ("proname"); CREATE INDEX idx_pg_proc_pronamespace ON pg_proc ("pronamespace"); CREATE INDEX idx_pg_proc_proowner ON pg_proc ("proowner"); The reasoning behind this is guessing whether an index will be helpful can be a bit hard within Postgres. So the easy solution is to add indexes to everything, then just observe if they're being used. Of course you want to add it to all tables/columns because you never know if core of Postgres may be missing some needed ones As included with the pg-extras plugin for Heroku you can run a query to show you all unused indexes. On Heroku simply install the plugin the run heroku pg:unused_indexes to show the size and number of times an index scan has been used. On a non Heroku Postgres database you can run: # SELECT schemaname || '.' || relname AS table, indexrelname AS index, pg_size_pretty(pg_relation_size(i.indexrelid)) AS index_size, idx_scan as index_scans FROM pg_stat_user_indexes ui JOIN pg_index i ON ui.indexrelid = i.indexrelid WHERE NOT indisunique AND idx_scan < 50 AND pg_relation_size(relid) > 5 * 8192 ORDER BY pg_relation_size(i.indexrelid) / nullif(idx_scan, 0) DESC NULLS FIRST, pg_relation_size(i.indexrelid) DESC; table | index | index_size | index_scans ---------------------+--------------------------------------------+------------+------------- public.grade_levels | index_placement_attempt

## Prioritizing and Planning within Heroku Postgres

DevFeed: [Prioritizing and Planning within Heroku Postgres](<https://devfeed.tech/articles/prioritizing-and-planning-within-heroku-postgres-41130.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2013/03/13/planning-and-prioritizing/>)

Author: Map

Published: 2013-03-13T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Product Management](<https://devfeed.tech/topics/product-management.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [management](<https://devfeed.tech/tags/management.md>), [plan](<https://devfeed.tech/tags/plan.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

The article describes a prioritization and planning process developed by the Heroku Postgres team. It involves collecting ideas, organizing them in a backlog, assessing impact and difficulty on a grid, and creating a six-month plan that identifies priorities and intentionally deferred work.

### Source excerpt

Over a year ago I blogged about Heroku's approach to Teams and Tools. Since that time Heroku has grown from around 25 people to over 100, we've continued to iterate and find new tools that work for how we do things. For many of the product management and software engineering books I've read I've yet to find something that helps a team priorize in a fashion I that feels right. One process emerged nearly a year ago from within the Heroku Postgres team and is now followed by many others. Within a team this process is now commonly conducted each 6 months. Lets take a look at how this process looks It Starts with Ideas Hopefully having ideas of things to work on isn't a problem, if it is just go spend some time with customers - listen to their problems, see how they use the product, then come back and write down the ideas. For most teams this is simply an excercise of thinking back and writing it down. Some teams at Heroku have resorted to keeping running backlogs of things they'd like to do this. We do this by keeping a Trello board which columns for: New ideas Ponies Stallions Ponies and Stallions are things that would be great to do, however a sizeable amount of work must be done on them and we're not currently tackling them. Ponies are less sizeable and likely to get done not in coming weeks but perhaps in coming months up to a year. Stallions are great but large effort and may or may not get done but in the category of things we would like to be able to do. Once you've got your ideas whether in your head on a backlog we begin by writing them out typically on sticky notes or index cards. Laying it all out From here we create a simple grid: The grid has two axis. One is for impact the other for difficulty. At this point we aim to lay out every idea that we've already written down into a quadrant. Commonly this is done at team offsites where the team is free of distractions and able to devote appropriate time to it. Being able to accomplish this in one sitting with the

## Understanding Postgres Performance

DevFeed: [Understanding Postgres Performance](<https://devfeed.tech/articles/understanding-postgres-performance-41118.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2012/10/01/Understanding-Postgres-Performance/>)

Author: Map

Published: 2012-10-01T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Database](<https://devfeed.tech/topics/database.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [database](<https://devfeed.tech/tags/database.md>), [database-performance](<https://devfeed.tech/tags/database-performance.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [index](<https://devfeed.tech/tags/index.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgres-performance](<https://devfeed.tech/tags/postgres-performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

A practical guide to assessing PostgreSQL performance for application developers. It explains how to check cache hit rates, when to increase available database cache, and how index usage and table size can indicate opportunities for improvement.

### Source excerpt

Update theres a more recent post that expands further on where to start optimizing specific queries, and of course if you want to dig into optimizing your infrastructure High Performance PostgreSQL is still a great read For many application developers their database is a black box. Data goes in, comes back out and in between there developers hope its a pretty short time span. Without becoming a DBA there's a few pieces of data that most application developers can easily grok which will help them understand if their database is performing adequately. This post will provide some quick tips that allow you to determine whether your database performance is slowing down your app, and if so what you can do about it. Understanding your Cache and its Hit Rate The typical rule for most applications is that only a fraction of its data is regularly accessed. As with many other things data can tend to follow the 80/20 rule with 20% of your data accounting for 80% of the reads and often times its higher than this. Postgres itself actually tracks access patterns of your data and will on its own keep frequently accessed data in cache. Generally you want your database to have a cache hit rate of about 99%. You can find your cache hit rate with: SELECT sum(heap_blks_read) as heap_read, sum(heap_blks_hit) as heap_hit, sum(heap_blks_hit) / (sum(heap_blks_hit) + sum(heap_blks_read)) as ratio FROM pg_statio_user_tables; We can see in this dataclip that the cache rate for Heroku Postgres is 99.99%. If you find yourself with a ratio significantly lower than 99% then you likely want to consider increasing the cache available to your database, you can do this on Heroku Postgres by performing a fast database changeover or on something like EC2 by performing a dump/restore to a larger instance size. Understanding Index Usage The other primary piece for improving performance is indexes. Several frameworks will add indexes on your primary keys, though if you're searching on other fields or joini

## Rapid API Prototyping with Heroku Postgres Dataclips

DevFeed: [Rapid API Prototyping with Heroku Postgres Dataclips](<https://devfeed.tech/articles/rapid-api-prototyping-with-heroku-postgres-dataclips-41116.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2012/07/19/Rapid-API-Prototyping-with-Heroku-Postgres-Dataclips/>)

Author: Map

Published: 2012-07-19T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Heroku Postgres](<https://devfeed.tech/topics/heroku-postgres.md>), [API](<https://devfeed.tech/topics/api.md>), [Database](<https://devfeed.tech/topics/database.md>), [JSON](<https://devfeed.tech/topics/json.md>), [CSV](<https://devfeed.tech/topics/csv.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [count](<https://devfeed.tech/tags/count.md>), [csv](<https://devfeed.tech/tags/csv.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [json](<https://devfeed.tech/tags/json.md>), [real-time](<https://devfeed.tech/tags/real-time.md>)

### AI overview

This tutorial explains how to use Heroku Postgres Dataclips to prototype APIs. It demonstrates creating SQL queries, exposing their results through a unique URL, optionally rerunning them as a real-time API, and requesting formats such as JSON, CSV, and XLS.

### Source excerpt

For small and large applications there often comes a time where you're busy creating an API. The API creation process usually takes the form of something like: Design your API, Implement your API, Test and Evaluate, Rinse and Repeat. Historically with implementing the API fully you can't see how you truly feel about the result, causing this cycle to take longer than it should. Heroku Postgres has Dataclips, which (among other things) can be used for quickly prototyping APIs. Dataclips allows you to easily share data, but more importantly consume it in a form much like you would a restful API. Lets take a look at how this would work: Given a schema We can see from the screen shot of the schema above we can see we have a few tables. These tables are the complete works of Shakespeare thanks to opensourceshakespeare. Lets take a couple of hypothetical endpoints we've decided on that we'd like to expose for users and test as an API. The number of works per year Drone factory (this is a fun one courtesy of Richard Morrison - @mozz100 essentially who has the longest paragraphs on average in his works. Create a dataclip Now we open up our database on Heroku Postgres and go down near the bottom to the dataclips section. Click the plus to create a new dataclip and we can enter our queries. SELECT year, count(*) FROM works GROUP BY year ORDER BY year ASC Click Create Clip and you'll be redirected to your new dataclip. This unique URL will always return the results of that query and if you want to shift it to a real time API that re-runs the query you can flip the now switch. For my simple example above my url for this dataclip is now https://dataclips.heroku.com/fcroecrluhwltbjinstfqmwyneex. Using the dataclip as a prototype API There are many different use cases for dataclips, but of course for our sake we care about prototyping an API instead of sharing the data. To do this you can simply append the format you want to the url above and test as if it were an API: JSON - https