<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Production on محمدرضا دهقانی تفتی — سایت شخصی</title><link>https://detafti.ir/tags/production/</link><description>Recent content in Production on محمدرضا دهقانی تفتی — سایت شخصی</description><generator>Hugo</generator><language>fa-IR</language><atom:link href="https://detafti.ir/tags/production/index.xml" rel="self" type="application/rss+xml"/><item><title>زنده‌بودن با سالم‌بودن فرق دارد</title><link>https://detafti.ir/notes/k8s-liveness-vs-readiness/</link><pubDate>Fri, 11 Sep 2026 17:20:00 +0330</pubDate><guid>https://detafti.ir/notes/k8s-liveness-vs-readiness/</guid><description>&lt;p>بدترین اختلال کوبرنتیزی که مدام می‌بینم، از کار افتادن یک نود نیست. یک پایگاه‌داده‌ی کُند است، یک پروب liveness که با همان پایگاه‌داده حرف می‌زند، و کلاستری که بعد هر پادی را که هنوز کار مفید می‌کرد می‌کُشد.&lt;/p>
&lt;p>liveness یعنی «این برنامه سالم است» نیست. یعنی «این فرایند آن‌قدر گیر کرده که کوبرنتیز باید خلاصش کند». اگر این اسلحه را به سمت یک وابستگی بگیرید، کل ناوگان را خواهید زد.&lt;/p></description></item><item><title>@Transactional اسپرینگ آن چیزی نیست که فکر می‌کنید</title><link>https://detafti.ir/notes/spring-transactional-in-production/</link><pubDate>Fri, 11 Sep 2026 17:10:00 +0330</pubDate><guid>https://detafti.ir/notes/spring-transactional-in-production/</guid><description>&lt;p>در بازبینی کد هنوز می‌بینم که &lt;code>@Transactional&lt;/code> مثل یک دعای خیر به کار می‌رود: رویش بگذار روی یک متد، و پایگاه‌داده سر به راه می‌شود. نمی‌شود. اسپرینگ وقتی تراکنشی را شروع می‌کند که یک &lt;strong>پروکسی&lt;/strong> فراخوانی ورودی را بگیرد. اگر فراخوانی هرگز به پروکسی نرسد، نه تراکنشی دارید، نه rollbackی، و در عوض یک باگ بسیار گیج‌کننده در محیط عملیاتی خواهید داشت.&lt;/p>
&lt;h2 id="آنچه-باور-داشتم--آنچه-حالا-میکنم">آنچه باور داشتم ← آنچه حالا می‌کنم&lt;/h2>
&lt;p>قبلاً «محض احتیاط» روی هر متد سرویس کمی &lt;code>@Transactional&lt;/code> می‌پاشیدم. حالا آن را روی همان یک متدی می‌گذارم که مرز مورد کاربرد است، تستی می‌نویسم که rollback را اثبات کند، و فراخوانی‌های خصوصی درون یک کلاس را نشانه‌ی بو می‌دانم.&lt;/p></description></item></channel></rss>