<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prem Peswani</title>
    <description>The latest articles on DEV Community by Prem Peswani (@prem_peswani_4222579c915d).</description>
    <link>https://dev.to/prem_peswani_4222579c915d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4185870%2F9bd0c35c-2f5a-40d2-8125-2b6640d03488.webp</url>
      <title>DEV Community: Prem Peswani</title>
      <link>https://dev.to/prem_peswani_4222579c915d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prem_peswani_4222579c915d"/>
    <language>en</language>
    <item>
      <title>Make generation quotas safe to retry</title>
      <dc:creator>Prem Peswani</dc:creator>
      <pubDate>Sat, 17 Oct 2026 05:22:19 +0000</pubDate>
      <link>https://dev.to/prem_peswani_4222579c915d/make-generation-quotas-safe-to-retry-1eg3</link>
      <guid>https://dev.to/prem_peswani_4222579c915d/make-generation-quotas-safe-to-retry-1eg3</guid>
      <description>&lt;p&gt;Any web action that calls a slower service has to handle a familiar failure: the server may finish the work, but the response can disappear before the browser receives it.&lt;/p&gt;

&lt;p&gt;If a user retries and the backend treats the retry as a new operation, the same request may consume quota twice or create duplicate output. A button being clicked once does not guarantee one request reached the server.&lt;/p&gt;

&lt;p&gt;A useful design pattern is to give each intended operation a stable idempotency key. The server records that key before starting expensive work. A repeated request with the same key returns the existing operation state instead of starting another one.&lt;/p&gt;

&lt;p&gt;One possible state model is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reserved -&amp;gt; completed
         -&amp;gt; failed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The reservation should be scoped to the user and the intended operation. A separate operation ID can let the client ask for status after a timeout. The UI can then show “still processing,” “completed,” or “failed” based on the server’s recorded state instead of guessing from the button click.&lt;/p&gt;

&lt;p&gt;The tricky case is an upstream timeout. A timeout does not always mean the provider did no work. Before releasing a reservation or creating a new provider request, check whether the original operation can be found or safely retried with the same idempotency key. Otherwise a timeout can turn into duplicate work.&lt;/p&gt;

&lt;p&gt;This is a design pattern, not a claim about any particular product implementation. The right quota rule depends on the product promise: whether a failed attempt is charged, whether pending work reserves capacity, and how long an operation may remain unresolved. Make those choices explicit, then test concurrent starts, browser retries, provider timeouts, and delayed responses.&lt;/p&gt;

&lt;p&gt;I’m Prem, founder of Zextha. This post was prepared with AI assistance.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>architecture</category>
      <category>ai</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Four Better Questions Before an AI System Map</title>
      <dc:creator>Prem Peswani</dc:creator>
      <pubDate>Fri, 16 Oct 2026 03:36:56 +0000</pubDate>
      <link>https://dev.to/prem_peswani_4222579c915d/four-better-questions-before-an-ai-system-map-4e2a</link>
      <guid>https://dev.to/prem_peswani_4222579c915d/four-better-questions-before-an-ai-system-map-4e2a</guid>
      <description>&lt;p&gt;A good idea often arrives as one sentence. A useful map needs more context, but asking every person the same four questions about budget, goal, timeline, and audience misses the point. The questions should follow the idea.&lt;/p&gt;

&lt;p&gt;For example, “I want to build a learning companion for students” suggests different unknowns than “I want to launch a creator channel.” The first may need to ask about age group, teacher involvement, connectivity, and what happens when an explanation is wrong. The second may need to ask about format, publishing capacity, audience, and how to learn from early feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical question-selection pattern
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extract the idea’s actors and environment.&lt;/strong&gt; Who is affected? Where will the idea operate?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find consequential unknowns.&lt;/strong&gt; Prefer a missing answer that changes the design over a generic fact that only fills a form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose four non-overlapping questions.&lt;/strong&gt; Each should expose a different decision or constraint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give usable options without trapping the user.&lt;/strong&gt; Suggested answers can speed up the flow, but an “other” path should preserve nuance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carry those answers into the map.&lt;/strong&gt; A question is useful only if the resulting nodes, risks, or next steps change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key distinction: four questions are a limit on friction, not a fixed checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  A map is a hypothesis, not a verdict
&lt;/h2&gt;

&lt;p&gt;After clarification, a map can surface relationships among the central idea, dependencies, constraints, risks, and next experiments. It should make assumptions visible and leave room for correction. It should not imply that a model has validated demand, safety, or feasibility. Those require evidence outside the map.&lt;/p&gt;

&lt;p&gt;At Zextha, the starting flow asks four questions tailored to the idea and turns the answers into a system map. I think the useful standard for this kind of tool is simple: did it help someone identify a better first test?&lt;/p&gt;

&lt;p&gt;Try it with your own idea: &lt;a href="https://www.zextha.space/" rel="noopener noreferrer"&gt;https://www.zextha.space/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have built an idea-discovery flow, how do you decide which question is worth one of the four slots?&lt;/p&gt;

</description>
      <category>product</category>
      <category>ai</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>From a vague idea to a system map: the workflow behind Zextha</title>
      <dc:creator>Prem Peswani</dc:creator>
      <pubDate>Thu, 15 Oct 2026 04:51:07 +0000</pubDate>
      <link>https://dev.to/prem_peswani_4222579c915d/from-a-vague-idea-to-a-system-map-the-workflow-behind-zextha-3fc9</link>
      <guid>https://dev.to/prem_peswani_4222579c915d/from-a-vague-idea-to-a-system-map-the-workflow-behind-zextha-3fc9</guid>
      <description>&lt;p&gt;I’m building &lt;a href="https://www.zextha.space" rel="noopener noreferrer"&gt;Zextha&lt;/a&gt;, a visual workspace for exploring the system around an idea. This is a short walkthrough of the product workflow and the decisions behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: a prompt leaves things unsaid
&lt;/h2&gt;

&lt;p&gt;“I want to build a learning companion” describes an intention. It does not tell us who will use it, what environment it needs to work in, or how we will know it helps. Starting implementation immediately can hide those unknowns inside the design.&lt;/p&gt;

&lt;p&gt;Zextha gives the early thinking a visible structure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Describe the idea in your own words.&lt;/li&gt;
&lt;li&gt;Answer four questions tailored to that idea.&lt;/li&gt;
&lt;li&gt;Explore a map of perspectives and their relationships.&lt;/li&gt;
&lt;li&gt;Use the map to decide what to investigate or try next.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Four questions should earn their place
&lt;/h2&gt;

&lt;p&gt;A fixed budget–goal–timeline checklist is convenient, but it can miss the questions that matter for a particular project.&lt;/p&gt;

&lt;p&gt;For a learning companion, device access and the learner’s context may be important. For a content creator, the audience and a sustainable format may matter more. These are examples of useful questions, not a promise that every generated session uses the same wording.&lt;/p&gt;

&lt;p&gt;The goal is to collect context that can change the map, while keeping the interaction short.&lt;/p&gt;

&lt;h2&gt;
  
  
  A map is an interface for investigation
&lt;/h2&gt;

&lt;p&gt;A useful node should give you something to examine: a dependency, constraint, risk, choice, or next action. Connections help show why one decision affects another.&lt;/p&gt;

&lt;p&gt;For example, choosing an offline-first experience affects storage, synchronization, content updates, and how failures are explained. Treating “offline support” as a single checkbox would hide much of that work.&lt;/p&gt;

&lt;p&gt;The output still needs human review. A generated map is not an exhaustive architecture review or evidence that an idea will work. It is a way to make the next discussion more concrete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading and references have different jobs
&lt;/h2&gt;

&lt;p&gt;Zextha’s Notes area contains original field books with chapters that can be read inside the workspace. Documents helps readers understand why a reference matters and follow it to the original source.&lt;/p&gt;

&lt;p&gt;Keeping those experiences distinct matters: reading a chapter and evaluating a source are different tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  An optional perspective for agents
&lt;/h2&gt;

&lt;p&gt;Zextha also exposes an MCP connection for compatible clients. An agent can request a read-only perspective on an idea, an approach, or next steps. It does not automatically inspect your files or take control of your project; the client supplies the context.&lt;/p&gt;

&lt;p&gt;The connection details are available in the &lt;a href="https://www.zextha.space/mcp" rel="noopener noreferrer"&gt;MCP workspace&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it with a real uncertainty
&lt;/h2&gt;

&lt;p&gt;If you explore &lt;a href="https://www.zextha.space" rel="noopener noreferrer"&gt;Zextha&lt;/a&gt;, try an idea you are still unsure about. Look for one useful connection, then verify it against the real requirements.&lt;/p&gt;

&lt;p&gt;I’d welcome feedback from builders: what information would make a system map useful before you start implementation?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m Zextha’s founder. This post was prepared with AI assistance.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
  </channel>
</rss>
