{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "DBExplore blog",
  "home_page_url": "https://www.dbexplore.com/blog/",
  "feed_url": "https://www.dbexplore.com/feed.json",
  "description": "Engineering notes on Postgres observability and governed autonomy.",
  "language": "en",
  "authors": [
    {
      "name": "Karthik M",
      "url": "https://www.dbexplore.com/authors/karthik-m/"
    }
  ],
  "items": [
    {
      "id": "https://www.dbexplore.com/blog/pgvector-index-outgrew-memory/",
      "url": "https://www.dbexplore.com/blog/pgvector-index-outgrew-memory/",
      "title": "The pgvector index nobody measured",
      "summary": "Vector search in Postgres degrades quietly. The index crosses RAM, the build runs on disk, recall decays with churn, and none of it raises an alert.",
      "content_text": "Vector search in Postgres degrades quietly. The index crosses RAM, the build runs on disk, recall decays with churn, and none of it raises an alert.",
      "date_published": "2026-09-30T00:00:00.000Z",
      "tags": [
        "pgvector",
        "vector-search",
        "postgres-internals"
      ],
      "image": "https://www.dbexplore.com/og/blog/pgvector-index-outgrew-memory.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    },
    {
      "id": "https://www.dbexplore.com/blog/aurora-writer-endpoint-can-lie-to-you/",
      "url": "https://www.dbexplore.com/blog/aurora-writer-endpoint-can-lie-to-you/",
      "title": "Aurora's writer endpoint can lie to you",
      "summary": "CloudWatch measures instances. Your application talks to endpoints. For the minute those disagree, every instance metric looks healthy while writes fail.",
      "content_text": "CloudWatch measures instances. Your application talks to endpoints. For the minute those disagree, every instance metric looks healthy while writes fail.",
      "date_published": "2026-09-23T00:00:00.000Z",
      "tags": [
        "aurora",
        "high-availability",
        "monitoring"
      ],
      "image": "https://www.dbexplore.com/og/blog/aurora-writer-endpoint-can-lie-to-you.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    },
    {
      "id": "https://www.dbexplore.com/blog/postgres-18-moved-the-wal-io-counters/",
      "url": "https://www.dbexplore.com/blog/postgres-18-moved-the-wal-io-counters/",
      "title": "PostgreSQL 18 moved the WAL I/O counters",
      "summary": "pg_stat_wal lost its write and sync columns to pg_stat_io in 18. Nothing errors. The numbers just stop arriving, and most monitoring never notices.",
      "content_text": "pg_stat_wal lost its write and sync columns to pg_stat_io in 18. Nothing errors. The numbers just stop arriving, and most monitoring never notices.",
      "date_published": "2026-09-16T00:00:00.000Z",
      "tags": [
        "postgres-18",
        "postgres-internals",
        "monitoring"
      ],
      "image": "https://www.dbexplore.com/og/blog/postgres-18-moved-the-wal-io-counters.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    },
    {
      "id": "https://www.dbexplore.com/blog/why-we-capped-ourselves-at-rung-2/",
      "url": "https://www.dbexplore.com/blog/why-we-capped-ourselves-at-rung-2/",
      "title": "Why we capped ourselves at rung 2",
      "summary": "We built an action plane and a fail-closed policy gate, then refused to let any action run unattended until it could prove it was reversible. The ladder.",
      "content_text": "We built an action plane and a fail-closed policy gate, then refused to let any action run unattended until it could prove it was reversible. The ladder.",
      "date_published": "2026-09-10T00:00:00.000Z",
      "tags": [
        "governed-autonomy",
        "action-plane",
        "policy-gate"
      ],
      "image": "https://www.dbexplore.com/og/blog/why-we-capped-ourselves-at-rung-2.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    },
    {
      "id": "https://www.dbexplore.com/blog/75-percent-of-our-plan-storage-was-duplicate/",
      "url": "https://www.dbexplore.com/blog/75-percent-of-our-plan-storage-was-duplicate/",
      "title": "75% of our query-plan storage was duplicate",
      "summary": "Thousands of stored plans turned out to be a few hundred distinct shapes. What a structural fingerprint keeps, what it strips, and why regressions depend on it.",
      "content_text": "Thousands of stored plans turned out to be a few hundred distinct shapes. What a structural fingerprint keeps, what it strips, and why regressions depend on it.",
      "date_published": "2026-08-27T00:00:00.000Z",
      "tags": [
        "query-plans",
        "plan-regression",
        "postgres-internals"
      ],
      "image": "https://www.dbexplore.com/og/blog/75-percent-of-our-plan-storage-was-duplicate.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    },
    {
      "id": "https://www.dbexplore.com/blog/what-our-anomaly-engine-actually-runs/",
      "url": "https://www.dbexplore.com/blog/what-our-anomaly-engine-actually-runs/",
      "title": "What our anomaly engine actually runs",
      "summary": "An isolation forest with a fixed contamination rate, density clustering with a sample floor, a threshold-ladder classifier, and heuristics that name a cause.",
      "content_text": "An isolation forest with a fixed contamination rate, density clustering with a sample floor, a threshold-ladder classifier, and heuristics that name a cause.",
      "date_published": "2026-08-13T00:00:00.000Z",
      "tags": [
        "anomaly-detection",
        "machine-learning",
        "signatures"
      ],
      "image": "https://www.dbexplore.com/og/blog/what-our-anomaly-engine-actually-runs.png",
      "authors": [
        {
          "name": "Karthik M"
        }
      ]
    }
  ]
}