<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Palash Chauhan</title><description>Senior Software Engineer at Salesforce on the Phoenix Database team. Writing about distributed systems, databases, and large-scale infrastructure.</description><link>https://palashc.github.io/</link><item><title>phoenix-adapters: DynamoDB on Phoenix</title><link>https://palashc.github.io/blog/phoenix-adapters-service/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-adapters-service/</guid><description>Your DynamoDB app, unchanged, on Apache Phoenix. No new SDK, no new data model, no rewrite.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Eventually Consistent Indexes</title><link>https://palashc.github.io/blog/phoenix-dynamodb-parity/eventually-consistent-indexes/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-dynamodb-parity/eventually-consistent-indexes/</guid><description>Taking index maintenance off the write path with a CDC stream and an async consumer, so writes stay fast when a table has many indexes.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>Change Streams and Partition Lineage</title><link>https://palashc.github.io/blog/phoenix-dynamodb-parity/cdc-stream-improvements/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-dynamodb-parity/cdc-stream-improvements/</guid><description>Why an ordered consumer needs region lineage, and how Phoenix tracks it as stream metadata in SYSTEM.CDC_STREAM.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>BSON Document Support</title><link>https://palashc.github.io/blog/phoenix-dynamodb-parity/bson-document-support/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-dynamodb-parity/bson-document-support/</guid><description>Storing schemaless documents in a Phoenix column, and reading, filtering, and updating their fields server-side.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Change Data Capture</title><link>https://palashc.github.io/blog/phoenix-features/cdc/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-features/cdc/</guid><description>How Phoenix turns an uncovered index and the empty column&apos;s timestamp into an ordered, partitioned change stream you can read with plain SELECTs.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate></item><item><title>TTL</title><link>https://palashc.github.io/blog/phoenix-features/ttl/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-features/ttl/</guid><description>The three flavors of Phoenix TTL: table-level, per-view, and conditional.</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Secondary Indexes</title><link>https://palashc.github.io/blog/phoenix-features/secondary-indexes/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-features/secondary-indexes/</guid><description>How Phoenix keeps a secondary index, a separate HBase table, strongly consistent with the data table, using the empty column and read repair.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Views and Multi-tenancy</title><link>https://palashc.github.io/blog/phoenix-features/views-and-multi-tenancy/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-features/views-and-multi-tenancy/</guid><description>Building a multi-tenant order store on Phoenix: using views to slice data and tenant ids to keep customers isolated, all in one HBase table.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The life of a query and an upsert</title><link>https://palashc.github.io/blog/phoenix-fundamentals/query-and-upsert-execution/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-fundamentals/query-and-upsert-execution/</guid><description>Tracing an UPSERT, a SELECT, and a GROUP BY on a real table, from Phoenix SQL down to HBase and back.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Putting the SQL back in NoSQL</title><link>https://palashc.github.io/blog/phoenix-fundamentals/phoenix-in-hbase/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-fundamentals/phoenix-in-hbase/</guid><description>How Phoenix maps familiar relational concepts onto plain HBase and coprocessors, without adding a database server.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Introduction to Apache HBase</title><link>https://palashc.github.io/blog/phoenix-fundamentals/introduction-to-hbase/</link><guid isPermaLink="true">https://palashc.github.io/blog/phoenix-fundamentals/introduction-to-hbase/</guid><description>A short, visual primer on the parts of Apache HBase that matter most for Phoenix: its data model, its API, and above all, coprocessors.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate></item><item><title>SQL: the feature NoSQL forgot</title><link>https://palashc.github.io/blog/why-sql-on-hbase/</link><guid isPermaLink="true">https://palashc.github.io/blog/why-sql-on-hbase/</guid><description>Why NoSQL stores gave up SQL, why that matters to users, and how Apache Phoenix brings SQL back to HBase.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item></channel></rss>