প্রকল্প সম্পর্কে

Centrifugo একটি ওপেন-সোর্স, স্কেলযোগ্য রিয়েল-টাইম মেসেজিং সার্ভার যা WebSocket, HTTP-streaming, Server-Sent Events (SSE), GRPC এবং WebTransport (পরীক্ষামূলক) সহ বিভিন্ন ট্রান্সপোর্টের মাধ্যমে অনলাইন ব্যবহারকারীদের কাছে বার্তা পৌঁছে দেওয়ার জন্য ডিজাইন করা হয়েছে। এটি একটি ব্যবহারকারী-মুখী PUB/SUB মডেল প্রয়োগ করে যেখানে ক্লায়েন্টরা চ্যানেলে সাবস্ক্রাইব করে এবং একটি সাধারণ HTTP বা GRPC API-এর মাধ্যমে ব্যাকএন্ড দ্বারা প্রকাশিত বার্তা গ্রহণ করে। এটি এটিকে ভাষা-নিরপেক্ষ করে তোলে এবং চ্যাট অ্যাপ, লাইভ কমেন্ট, মাল্টিপ্লেয়ার গেম, রিয়েল-টাইম ড্যাশবোর্ড, সহযোগিতামূলক টুল এবং AI স্ট্রিমিং প্রতিক্রিয়া তৈরির জন্য উপযুক্ত করে তোলে। মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে: - **দক্ষ ট্রান্সপোর্ট**: WebSocket, HTTP-streaming, SSE, GRPC, WebTransport। - **স্কেলযোগ্যতা**: অনুভূমিক স্কেলিংয়ের জন্য Redis (Redis Cluster এবং Valkey, KeyDB, DragonflyDB-এর মতো সামঞ্জস্যপূর্ণ স্টোর সহ), PostgreSQL বা Nats-এর বিল্ট-ইন সমর্থন। - **সহজ সার্ভার API**: ব্যাকএন্ড যোগাযোগের জন্য HTTP এবং GRPC এন্ডপয়েন্ট। - **অ্যাসিঙ্ক্রোনাস কনজিউমার**: ট্রানজ্যাকশনাল আউটবক্স এবং CDC প্যাটার্নের জন্য PostgreSQL এবং Kafka কনজিউমার। - **নমনীয় প্রমাণীকরণ**: JWT-ভিত্তিক বা ব্যাকএন্ড অনুরোধের মাধ্যমে প্রক্সি-সদৃশ প্রমাণীকরণ। - **সমৃদ্ধ সাবস্ক্রিপশন মডেল**: Stream (ক্লায়েন্ট/সার্ভার-সাইড), map, shared poll এবং proxy subscription streams। - **চ্যানেল অনুমতি**: Namespace ধারণা এবং বিভিন্ন অনুমতি কৌশল। - **বার্তা ইতিহাস এবং পুনরুদ্ধার**: পুনঃসংযোগে স্বয়ংক্রিয় পুনরুদ্ধার সহ হট হিস্টরি, প্লাস ক্যাশে পুনরুদ্ধার মোড। - **ডেল্টা কম্প্রেশন**: ব্যান্ডউইথ কমাতে Fossil অ্যালগরিদমের উপর ভিত্তি করে। - **Presence**: join/leave বিজ্ঞপ্তি সহ অনলাইন চ্যানেল presence। - **RPC**: রিয়েল-টাইম সংযোগের মাধ্যমে ব্যাকএন্ডে RPC কল পাঠান। - **ক্লায়েন্ট প্রোটোকল**: JavaScript, Dart/Flutter, Swift, Java, Python, Go এবং .NET (WIP)-এর জন্য অফিসিয়াল SDK সহ কঠোর এবং কার্যকর প্রোটোকল। - **ডেটা ফরম্যাট**: অপ্টিমাইজড সিরিয়ালাইজেশন এবং ব্যাচিং সহ JSON এবং বাইনারি Protobuf। - **Admin UI**: মনিটরিং এবং পরীক্ষার জন্য এমবেডেড ওয়েব ইন্টারফেস। - **পর্যবেক্ষণযোগ্যতা**: Prometheus মেট্রিক্স এবং একটি অফিসিয়াল Grafana ড্যাশবোর্ড। Centrifugo Pubnub, Pusher এবং Ably-এর মতো বাণিজ্যিক পরিষেবা, সেইসাথে socket.io এবং SignalR-এর মতো ফ্রেমওয়ার্কের একটি self-hosted বিকল্প হিসেবে অবস্থান করছে। এটি একবার সেট আপ করে অনির্দিষ্টকালের জন্য ব্যবহার করার জন্য ডিজাইন করা হয়েছে, ব্যবসায়িক লজিক থেকে রিয়েল-টাইম ট্রান্সপোর্টকে আলাদা করে। Docker-এর সাথে দ্রুত শুরু: ```bash docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure ``` তারপর admin UI-এর জন্য http://localhost:8000 খুলুন। insecure ফ্ল্যাগগুলি শুধুমাত্র স্থানীয় ট্রায়ালের জন্য। প্রোডাকশনের জন্য, অফিসিয়াল ডকুমেন্টেশন সাইট (centrifugal.dev)-এ ইনস্টলেশন এবং কুইকস্টার্ট গাইড অনুসরণ করুন। প্রকল্পটি Telegram এবং Discord-এর মাধ্যমে সম্প্রদায় সমর্থন সহ সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়।