ساخت موتور اجماع توزیعشده با هوش مصنوعی در ۶ هفته
خلاصهٔ کاملتر
چند ماه پیش، یه مهندس تصمیم گرفت ببینه ابزارهای AI تا کجا میتونن توی ساخت سیستمهای توزیعشده واقعی کمک کنن. نتیجه: یه موتور اجماع multi-Paxos به زبان Rust که معادل مدرنشده کتابخونه RSL مایکروسافت Azureه — کتابخونهای که ستون فقرات replication اکثر سرویسهای بزرگ Azureه. پروژه حدود ۶ هفته طول کشید، ۱۳۰ هزار خط کد تولید شد و بیش از ۱۳۰۰ تست نوشته شد که ۶۵ درصد codebase رو پوشش میده.
چرا RSL نیاز به نوسازی داشت؟ RSL بیش از یه دهه پیش نوشته شده و سه محدودیت اصلی داره: هیچ pipeliningای نداره (یعنی وقتی یه vote در جریانه، درخواستهای جدید باید صبر کنن)، از NVM یا حافظه غیرفرار پشتیبانی نمیکنه (که الان توی دیتاسنترهای Azure رایجه)، و هیچ آگاهی از RDMA (یه تکنولوژی شبکه با تأخیر خیلی کم) نداره. پروژه جدید دو تا از این سه محدودیت رو حل کرده.
کد کانترکت؛ سلاح مخفی درستی کد. یکی از کلیدیترین تکنیکها استفاده از code contracts بود — یعنی تعریف precondition، postcondition و invariant برای توابع مهم. این کانترکتها در زمان تست به assert تبدیل میشن ولی در build نهایی غیرفعال میمونن. AI (بهخصوص GPT-5 High) در نوشتن این کانترکتها خیلی خوب عمل میکنه؛ برای مثال متد process_2a که پیامهای فاز ۲a رو در Paxos مدیریت میکنه، ۱۶ تا کانترکت داره. یه کانترکت AI-generated تونست یه نقض امنیتی ظریف در Paxos رو قبل از رفتن به production کشف کنه.
بعد از تعریف کانترکتها، AI بهطور خودکار test case برای هر postcondition میسازه. جالبترین بخش اما property-based testing ئه — AI کانترکتها رو به تستهایی تبدیل میکنه که با ورودیهای تصادفی فضای وسیعی رو کاوش میکنن و هر نقض کانترکتی رو با panic مشخص میکنن.
توسعه سبک مبتنی بر Spec. رویکرد اولیه (نوشتن داکیومنتهای requirement، design و task list) خیلی سختگیرانه بود و نگه داشتن همه اسناد consistent دردسرساز میشد. رویکرد جدید اینطوره: برای هر feature از دستور /specify در ابزار spec-kit استفاده میشه تا یه spec markdown با user story و acceptance criteria ساخته بشه. بعد با /clarify از AI خواسته میشه که خودش رو نقد کنه و user storyهای جدید پیشنهاد بده. یه user story اندازهای که AI میتونه بهخوبی مدیریت کنه به عنوان واحد کار انتخاب شده.
● Question 4: Starting Slot Determination
| Option | Description |
|--------|----------------------------------------------------------------|
| A | Always exactly ending_slot + 1 |
| B | Allow operator to specify any value > ending_slot |
| C | Next multiple of 1000 after ending_slot for cleaner boundaries |
| D | Same as ending_slot (both configs share final slot) |
این نوع تعامل با AI — که خودش گزینهها رو میسنجه و توضیح میده — کمک میکنه تصمیمهای طراحی سریعتر و آگاهانهتر گرفته بشن.
بهینهسازی پرفورمنس با کمک AI. throughput از ~۲۳ هزار عملیات در ثانیه به ~۳۰۰ هزار عملیات رسید — روی یه لپتاپ معمولی. فرآیند کار: AI ابزارهای اندازهگیری تأخیر رو در همه مسیرهای کد جاسازی میکنه، بعد trace logها رو با اسکریپت Python تحلیل میکنه و bottleneckها رو شناسایی میکنه. بهینهسازیهای کلیدی شامل کاهش allocation، تکنیکهای zero-copy، حذف lock contention و کاهش async overhead بود.
نکات کلیدی:
- موتور multi-Paxos جدید دو تا از سه محدودیت RSL مایکروسافت (pipelining و NVM) رو حل کرده
- ۱۳۰ هزار خط کد Rust در ۶ هفته با کمک Claude Code و Codex CLI
- کد کانترکتهای AI-generated مؤثرترین ابزار برای تضمین درستی منطق Paxos بودن
- رویکرد spec سبک (یه user story در هر session) بهتر از SDD سنگین عمل کرد
- throughput از ۲۳K به ۳۰۰K ops/sec رسید با تحلیل پرفورمنس مبتنی بر AI




