منصوبے کے بارے میں

Watermill ایک Go لائبریری ہے جو ایونٹ سے چلنے والی ایپلیکیشنز کو مؤثر طریقے سے بنانے کے لیے ڈیزائن کی گئی ہے۔ یہ پیغام اسٹریم مواصلات کو ایک سادہ ہینڈلر انٹرفیس کے پیچھے چھپا دیتی ہے، جس سے یہ HTTP راؤٹرز کی طرح استعمال کرنا آسان ہو جاتا ہے۔ یہ لائبریری ایونٹ سورسنگ، پیغامات پر RPC، ساگاس (sagas)، CQRS، اور دیگر ایونٹ سے چلنے والے پیٹرنز کو سپورٹ کرتی ہے۔ اہم خصوصیات میں شامل ہیں: - ایک سادہ ہینڈلر انٹرفیس: func(*Message) ([]*Message, error) - ایونٹ سے چلنے والی آرکیٹیکچر، میسجنگ، اسٹریم پروسیسنگ، اور CQRS کے لیے عالمگیر سپورٹ - لچکدار مڈل ویئر اور پلگ ان سسٹم - ثابت شدہ ٹیکنالوجیز اور تناؤ کے ٹیسٹ کے ساتھ لچکدار ڈیزائن سپورٹ شدہ Pub/Sub نفاذات میں شامل ہیں: - AMQP (RabbitMQ) - AWS SNS/SQS - Bolt - Firestore - Google Cloud Pub/Sub - HTTP - io.Reader/io.Writer - Kafka - NATS Jetstream - Redis Streams - SQL (MySQL/PostgreSQL) - SQLite (بیٹا) Watermill v1.0.0 پروڈکشن کے لیے تیار ہے اور اس کا عوامی API مستحکم ہے۔ تمام Pub/Sub نفاذات کو ایک جامع ٹیسٹ سوٹ پاس کرنا ہوتا ہے، جس میں تناؤ کے ٹیسٹ (20x متوازی رن) اور ریس کنڈیشن کا پتہ لگانا شامل ہے۔ لائبریری میں بینچ مارکس شامل ہیں جو مختلف Pub/Sub نفاذات کے درمیان پیغام کی تھرو پٹ کا موازنہ کرتے ہیں۔ یہ پروجیکٹ وسیع مثالیں فراہم کرتا ہے جو بنیادی استعمال، Pub/Sub انضمام، حقیقی دنیا کے منظرنامے (ایک بار ڈیلیوری، ویب ہکس، ڈیٹا بیس سنکرونائزیشن، مستقل ایونٹ لاگ، ٹرانزیکشنل ایونٹس، سرور بھیجے گئے ایونٹس)، اور مکمل پروجیکٹس کا احاطہ کرتا ہے۔ ایک آن لائن عملی تربیتی کورس صنعت کے معیاری تصورات جیسے کم از کم ایک بار ڈیلیوری، غیر متزامن ریڈ ماڈلز، ایونٹس اور کمانڈز، مشاہدہ پذیری، پیغام کی ترتیب، اور ساگاس کا احاطہ کرتا ہے۔