<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aayush Goel — Writing</title>
    <link>https://aayushgoel.dev/blog/</link>
    <atom:link href="https://aayushgoel.dev/feed.xml" rel="self" type="application/rss+xml" />
    <description>Notes on backend systems that have to survive production — ERP integration, messaging infrastructure, and the unglamorous work of making them reliable.</description>
    <language>en</language>
    <managingEditor>mail@aayushgoel.dev (Aayush Goel)</managingEditor>
    <webMaster>mail@aayushgoel.dev (Aayush Goel)</webMaster>
    <lastBuildDate>Mon, 21 Sep 2026 09:00:00 +0530</lastBuildDate>

    <item>
      <title>One WhatsApp number, many stores: multi-tenant routing on the Cloud API</title>
      <link>https://aayushgoel.dev/blog/multi-tenant-whatsapp-cloud-api.html</link>
      <guid isPermaLink="true">https://aayushgoel.dev/blog/multi-tenant-whatsapp-cloud-api.html</guid>
      <pubDate>Mon, 21 Sep 2026 09:00:00 +0530</pubDate>
      <author>mail@aayushgoel.dev (Aayush Goel)</author>
      <category>Engineering</category>
      <description>A WhatsApp webhook gives you a number and a person, and neither is a tenant. Separating store visibility from store registration, why the session key has to be compound, and caching the retailers who do not exist.</description>
    </item>

    <item>
      <title>Building a two-way Tally ERP sync that survives retries</title>
      <link>https://aayushgoel.dev/blog/tally-erp-two-way-sync.html</link>
      <guid isPermaLink="true">https://aayushgoel.dev/blog/tally-erp-two-way-sync.html</guid>
      <pubDate>Mon, 21 Sep 2026 09:00:00 +0530</pubDate>
      <author>mail@aayushgoel.dev (Aayush Goel)</author>
      <category>Engineering</category>
      <description>Tally has no REST API, answers HTTP 200 on failure, and its documented batching is a no-op. What two generations of sync taught me.</description>
    </item>

  </channel>
</rss>
