Search that stays in sync with a document store
Context. A sustainability data platform where customers query assessment data across thousands of facilities. Documents live in CouchDB; search runs on Elasticsearch, with relational projections in PostgreSQL.
My part. Designing and optimizing the customer-facing APIs and keeping three stores consistent — including the unglamorous paths: when an entity is destroyed in the document store, its search index entries and relational rows have to go with it, and the change feed has to survive retries without double-indexing.
Outcome. A reliable indexing pipeline, predictable API latency as data volume grows, and no orphaned records quietly haunting the search results.