
ٹریڈنگ سسٹمز کے لیے سافٹ ویئر انجینئرنگ ڈیزائن پیٹرنز
ایونٹ سورسنگ، CQRS، اور ایکسچینجز کے استعمال کردہ آرکیٹیکچر پیٹرنز
ٹریڈنگ سسٹمز میں پیٹرنز کیوں اہم ہیں
مالیاتی سافٹ ویئر مہنگے طریقوں سے ناکام ہوتا ہے: ڈپلیکیٹ آرڈرز، غیر مستقل بیلنسز، خاموش جزوی ناکامیاں۔ ڈیزائن پیٹرنز ٹرافیاں نہیں ہیں — یہ بار بار پیش آنے والی ناکامیوں کے جواب ہیں: قابلِ آڈٹ ہونے کے لیے ایونٹ سورسنگ، ریڈز کو رائٹس سے مختلف انداز میں اسکیل کرنے کے لیے CQRS، سلسلہ وار خرابیاں روکنے کے لیے سرکٹ بریکرز، اور اس لیے کہ ری ٹرائیز ڈبل-ٹریڈ نہ کریں idempotency۔
Pub/Sub اور ڈھیلی جوڑ پن
میچنگ انجنز، رسک چیکس، اور مارکیٹ-ڈیٹا پبلشرز کو ایک بڑے الجھے ہوئے ڈھانچے میں براہِ راست ایک دوسرے کو کال نہیں کرنا چاہیے۔ ایک پبلش/سبسکرائب بس میچر کو فلز ایمٹ کرنے دیتا ہے جبکہ ڈاؤن اسٹریم سروسز اپ اسٹریمز کی نفاذی تفصیلات جانے بغیر سبسکرائب کرتی ہیں — مگر آپ کو پھر بھی ڈیلیوری گارنٹیز (at-least-once بمقابلہ exactly-once) اور ری پلے کے لیے ریٹینشن منتخب کرنا ہوگا۔
سرکٹ بریکرز اور بلک ہیڈز
ایک سرکٹ بریکر کسی بیمار ڈیپینڈنسی کو بار بار ناکامی کے بعد کال کرنا روک دیتا ہے، اسے بحال ہونے کا وقت دیتا ہے اور آپ کے تھریڈ پولز کی حفاظت کرتا ہے۔ بلک ہیڈز وسائل کے پولز کو الگ رکھتے ہیں تاکہ کسی بے قابو اینالیٹکس جاب کے سبب آرڈر جمع کرانا متاثر نہ ہو۔
اسٹیٹ مشینز اور Idempotency
آرڈرز اور ٹرانسفرز کی قانونی زندگی کے ادوار ہوتے ہیں۔ اجازت یافتہ منتقلیوں کو ایک فائنائٹ اسٹیٹ مشین میں انکوڈ کریں تاکہ غلط جمپس ناممکن ہوں۔ اس کے ساتھ کلائنٹ کی درخواستوں پر idempotency keys جوڑیں تاکہ نیٹ ورک ری ٹرائیز ڈپلیکیٹ لائیو آرڈرز نہ بنا سکیں۔
میچنگ انجنز: پرائس-ٹائم پرائیارٹی
مرکزی مراکز آنے والے آرڈرز کو بیٹھی ہوئی لیکویڈیٹی کے ساتھ پرائس-ٹائم پرائیارٹی سے میچ کرتے ہیں۔ آن-چین میچرز (جیسے کئی L1 DEX ڈیزائنز) کو متعین (deterministic) ہونا چاہیے: ہر ویلیڈیٹر ایک ہی ترتیب دوبارہ چلاتا ہے اور یکساں اسٹیٹ پر پہنچتا ہے — GaiaEx یہ ماڈل Hyperliquid کے اصولوں سے وراثت میں پاتا ہے۔
عملی اپنائیت
پہلے دن ہر پیٹرن کو بلا سوچے سمجھے اپنانے سے گریز کریں۔ واضح حدود، منظم لاگز، اور رقم کی نقل و حرکت کے ارد گرد ٹیسٹس سے شروع کریں۔ جب مصالحت (reconciliation) کی تکلیف ظاہر ہو تو ایونٹ لاگ شامل کریں؛ جب بیرونی APIs ناقابلِ اعتماد ہو جائیں تو سرکٹ بریکرز شامل کریں۔ پیٹرنز حقیقی رگڑ حل کرتے ہیں، خیالی نہیں۔