"Microservice কোনো লক্ষ্য নয়। এটা বড় team এর একটা সমস্যার সমাধান, আর এর নিজের দামও আছে।"
স্টেজ ০৫ শেষে আমাদের system একটার ভেতরেই কাজ ভাগ করে নিতে শিখেছে। ধীর কাজ queue তে যায়, worker রা background এ কাজ করে, আর একটা event অনেক জায়গায় পৌঁছে যায়। কিন্তু code এখনো একটাই বড় repository তে, আর প্রতি সপ্তাহে সবাই মিলে একসাথে deploy করে।
Team যখন চারজন থেকে ষাটজনে পৌঁছায়, তখন এই একসাথে থাকাটাই সবচেয়ে বড় বাধা হয়ে দাঁড়ায়। এই স্টেজে আমরা monolith ভাঙার পুরো গল্পটা দেখবো: কখন ভাঙবেন, কীভাবে ভাঙবেন, আর ভাঙার পর কোন নতুন সমস্যাগুলো সামলাতে হয়। স্টেজ শেষে আপনি বুঝবেন, microservice কেন সবার জন্য নয়।
০১ এই স্টেজে যা শিখবো
| সেশন | শিরোনাম | এই সেশনের লক্ষ্য |
|---|---|---|
| সেশন ১১ | Microservices (কখন ও কেন) | Monolith আর modular monolith, ভাগ করার চারটা আসল কারণ, bounded context আর database per service, distributed monolith এর ফাঁদ, Conway's law, strangler fig দিয়ে ধাপে ধাপে migration, আর network, debugging, data ও operations এর cost। |
| সেশন ১২ | Service-to-Service Communication | Sync RPC বনাম async message, REST/JSON বনাম gRPC/Protobuf, API contract আর versioning, series বনাম parallel call, tail latency, প্রতিটা call এ timeout, cascading failure, retry আর idempotency, আর service mesh ও sidecar। |
| সেশন ১৩ | API Gateway | Client এর জন্য একটাই দরজা: routing, gateway এ JWT check, TLS termination, rate limiting, request aggregation, BFF, response caching, আর redundant gateway দিয়ে SPOF এড়ানো। |
| সেশন ১৪ | Service Discovery | Hard-coded IP কেন ভাঙে, service registry, self-registration আর deregistration, heartbeat ও health check, client-side বনাম server-side discovery, DNS এর TTL সমস্যা, Kubernetes Service, আর stale entry ও registry failure। |
০২ স্টেজ শেষে যা যা করতে পারবেন
- Monolith কেন ভালো শুরু, আর modular monolith কীভাবে অনেক দিন যথেষ্ট থাকে, সেটা বোঝাতে পারবেন।
- Microservice এ ভাঙার আসল কারণগুলো (team, deploy, scaling, fault isolation) চিনতে পারবেন।
- Bounded context আর database per service দিয়ে service এর সীমানা ঠিক করতে পারবেন।
- REST, gRPC আর message দিয়ে service-to-service communication এর trade-off বলতে পারবেন।
- Cascading failure কীভাবে শুরু হয়, আর প্রতিটা call এ timeout কেন দরকার, সেটা বোঝাতে পারবেন।
- API Gateway কী কী কাজ করে (routing, auth, aggregation), আর এটা load balancer থেকে কীভাবে আলাদা, সেটা বলতে পারবেন।
- Service discovery কেন দরকার, আর registry, health check, client-side ও server-side discovery ব্যাখ্যা করতে পারবেন।
০৩ এর পর যা আসছে...
স্টেজ ০৬ শেষে আমাদের system অনেকগুলো আলাদা service এ ভাগ হয়ে গেছে। কিন্তু এর সাথে একটা নতুন প্রশ্ন আসে: অনেকগুলো machine একসাথে কীভাবে একই সত্যে একমত হয়? স্টেজ ০৭ এ আমরা distributed system এর গভীরে যাবো: CAP theorem, consensus (Raft), distributed transaction ও saga, আর exactly-once processing।