gRPC তৈরি — রোডম্যাপ
দশটি অধ্যায় যা আপনাকে 'protobuf একটা config language' থেকে শুরু করে একটা polyglot, mTLS দিয়ে সুরক্ষিত, observable gRPC service পর্যন্ত নিয়ে যাবে — যা nginx-এর পেছনে চলছে, streaming RPC আর টাইট deadline সহ।
শেষে গিয়ে আপনি যা করতে পারবেন
আপনি .proto ফাইল ডিজাইন করতে পারবেন, Go, Node আর Python-এ কোড জেনারেট করতে পারবেন, unary আর streaming RPC সহ একটা gRPC server ship করতে পারবেন, deadline সেট করে সেগুলো propagate করতে পারবেন, auth আর logging-এর জন্য interceptor লিখতে পারবেন, mTLS দিয়ে সুরক্ষিত করতে পারবেন, আর nginx-এর পেছনে একটা self-hosted gRPC service ডিপ্লয় করতে পারবেন। শেষে গিয়ে আপনি ঠিক বুঝতে পারবেন কখন gRPC সঠিক shape — আর কখন REST বা GraphQL বেশি মানানসই।
Prereqs: আগে Linux & VPS basics, Networking, আর TLS & Certificates track গুলো শেষ করুন। gRPC চলে HTTP/2 আর TLS-এর ওপর ভর করে — এই track গুলো ছাড়া failure mode গুলো আপনাকে ধাঁধায় ফেলবে। REST API building আর Web Server fundamentals track গুলোও সাহায্য করবে। Go হলো প্রধান ভাষা; polyglot অধ্যায়ে Node আর Python কভার করা হয়েছে।
১০টি অধ্যায়, ক্রম অনুযায়ী
Foundations
- gRPC কী আর কখন ব্যবহার করবেন — RPC vs REST vs GraphQL, আসল tradeoff গুলো
- Protocol Buffers — proto3 syntax, wire format, schema evolution
- নিচে HTTP/2 — multiplexing, framing, flow control, কেন এটা গুরুত্বপূর্ণ
- আপনার প্রথম server আর client — Go-তে end-to-end, codegen, unary RPC
Real services
- Polyglot — Node আর Python client — একই proto, তিনটা ভাষা
- Streaming RPC — server, client, আর bidirectional stream
- Error, deadline, metadata — status code, timeout, header
- Interceptor — auth, logging, retry, recovery-র জন্য middleware
Production
- TLS আর mTLS — cert, identity, peer authentication
- Production self-host — load balancing, observability, nginx-এর পেছনে
এই track কীভাবে ব্যবহার করবেন
ক্রম অনুযায়ী পড়ুন। প্রথম তিনটা অধ্যায় moving part গুলো ব্যাখ্যা করে; অধ্যায় 4 চলমান কোড ship করে। এরপর প্রতিটা অধ্যায় একটা করে আসল production capability যোগ করে। মোট পড়া: ~3 ঘণ্টা। হাতে-কলমে, প্রথমবার পুরোটা বানাতে: একটা লম্বা weekend।
আপনার দরকার Go 1.22+, protoc compiler, অধ্যায় 5-এর জন্য Node 20+ আর Python 3.11+, আর অধ্যায় 10-এর জন্য একটা VPS যার দিকে একটা domain pointed করা আছে। বাকি সবকিছু localhost-এ চলে।