Lambda Architecture কী?
Lambda Architecture হলো একটা Big Data Processing Architecture যেখানে batch layer + speed layer + serving layer – এই তিনটা একসাথে ব্যবহার করা হয়।
👉 মূল লক্ষ্য: বড় ডেটা প্রসেসিং + রিয়েল-টাইম প্রসেসিং দুটোই সাপোর্ট করা।
🔹 কেন দরকার?
-
অনেক ডেটা আসে (clickstream, IoT, transaction, log ইত্যাদি)।
-
কিছু ডেটা রিয়েল-টাইমে দরকার (fraud detection, live dashboard)।
-
কিছু ডেটা আবার batch আকারে দরকার (monthly report, trend analysis)।
👉 শুধু Batch ব্যবহার করলে real-time insights পাওয়া যায় না।
👉 শুধু Streaming ব্যবহার করলে historical data process কঠিন হয়।
👉 তাই দুটোকে মিশিয়ে বানানো হলো Lambda Architecture।
🔹 Lambda Architecture এর তিনটা Layer
1. Batch Layer
-
সব raw data কে immutably (পরিবর্তন না করে) store করে।
-
Periodically (hourly, daily) ডেটা প্রসেস করে aggregate / summary বানায়।
-
Tools: Hadoop, Spark, Azure Data Lake, Google BigQuery
2. Speed Layer (Real-time Layer)
-
নতুন incoming data কে সাথে সাথে প্রসেস করে।
-
Low-latency result দেয় (যেমন real-time dashboard)।
-
Tools: Apache Kafka, Spark Streaming, Flink, Azure Stream Analytics
3. Serving Layer
-
Batch + Real-time layer এর আউটপুট merge করে ইউজারকে ফাইনাল result দেয়।
-
Query করা যায় analytics/reporting system থেকে।
-
Tools: Cassandra, HBase, Elasticsearch, Redis
🔹Example (সহজ উদাহরণ)
ধরো, তুমি একটা E-commerce site চালাচ্ছো:
-
Batch Layer:
-
প্রতিদিনের sales data process করে monthly revenue report বানায়।
-
-
Speed Layer:
-
রিয়েল-টাইমে দেখে কোন প্রোডাক্ট ট্রেন্ড করছে, কত ইউজার এখন active আছে।
-
-
Serving Layer:
-
Dashboard এ ম্যানেজার দেখতে পাচ্ছে → আজকের current sales (real-time) + মাসের মোট sales (batch)।
-
🔹 আরেকটা Example (Fraud Detection in Banking)
-
Batch Layer:
-
Long-term historical transaction data বিশ্লেষণ করে fraud pattern বের করে।
-
-
Speed Layer:
-
নতুন ট্রানজাকশন real-time এ scan করে suspicious activity detect করে।
-
-
Serving Layer:
-
Fraud Monitoring Dashboard এ banker দেখতে পাচ্ছে → suspicious transaction alerts (real-time) + fraud trends (batch)।
-
🔹 Lambda Architecture এর সুবিধা
✅ Batch + Real-time একসাথে handle করতে পারে।
✅ Scalability বেশি (petabyte data process করতে পারে)।
✅ Fault-tolerance আছে (data সবসময় raw immutable store এ থাকে)।
🔹 সীমাবদ্ধতা
❌ Architecture জটিল (দুই সিস্টেম maintain করতে হয়)।
❌ Data consistency maintain করা কঠিন (batch vs real-time sync করতে হয়)।
❌ Costly (দুইটা pipeline maintain করতে হয়)।