<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>C# on Jun Wu</title>
    <link>https://junwu.shouyicheng.com/tags/c%23/</link>
    <description>Recent content in C# on Jun Wu</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 30 Jun 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://junwu.shouyicheng.com/tags/c%23/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Developer’s Guide: Elegant Architecture for Asynchronous, Multi-Condition Judgments with External Dependencies</title>
      <link>https://junwu.shouyicheng.com/posts/async-cross-filter-delay/</link>
      <pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://junwu.shouyicheng.com/posts/async-cross-filter-delay/</guid>
      <description>&lt;h1 id=&#34;developers-guide-elegant-architecture-for-asynchronous-multi-condition-judgments-with-external-dependencies&#34;&gt;&#xA;  Developer’s Guide: Elegant Architecture for Asynchronous, Multi-Condition Judgments with External Dependencies&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#developers-guide-elegant-architecture-for-asynchronous-multi-condition-judgments-with-external-dependencies&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-background&#34;&gt;&#xA;  1. Background&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-background&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In backend development, we often encounter complex scenarios that involve:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Multiple asynchronous conditions&lt;/strong&gt; to determine whether to execute a business logic&lt;/li&gt;&#xA;&lt;li&gt;Each condition may rely on a different &lt;strong&gt;external system/API&lt;/strong&gt; (e.g., order, comment, reward)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Delayed execution&lt;/strong&gt; after a condition check passes (e.g., reward sent 24 hours after comment)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Auditability and traceability&lt;/strong&gt; of each rule/check&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;example-use-case&#34;&gt;&#xA;  Example Use Case&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#example-use-case&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;After a user submits a product comment, the system must check if the user is eligible for a $1 reward. If eligible, the system will issue the reward within 24 hours.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
