એક ઈવેન્ટ-ડ્રિવન આર્કિટેક્ચરમાં, સેવાઓ બ્રોકર (Kafka, RabbitMQ, વગેરે)માં ઈવેન્ટ્સ પ્રોડ્યૂસ અને કન્ઝ્યુમ કરીને કમ્યુનિકેટ કરે છે. એક સેવા જાહેર કરે છે કે કંઈક બન્યું; રસ ધરાવતી સેવાઓ પ્રતિક્રિયા આપે છે — પ્રોડ્યુસર તેમને જાણતો નથી કે તેમનો답ાર નહીં રાખે.
તે કેવી રીતે કાર્ય કરે છે
text
Order Service ─publish→ [ Event Broker: "order.placed" ]
│
┌─────────────────┼──────────────────┐
▼ ▼ ▼
Inventory Notification Analytics
(reserve stock) (send email) (record metric)
ઈવેન્ટ પેલોડ ઉદાહરણ
json
{
"eventType": "order.placed",
"eventId": "e-9f2c", // unique → consumers dedupe
"occurredAt": "2026-06-18T10:00:00Z",
"data": { "orderId": "42", "total": 99.5 }
}
લાભો
- લૂઝ કપલિંગ — નવા કન્ઝ્યુમર ઉમેરો વિનાં પ્રોડ્યુસરને સ્પર્શ કર્યા.
- માનસિક તાણ — બ્રોકર આउટેજ દરમિયાન ઈવેન્ટ્સને બફર કરે છે.
- સ્કેલેબિલીટી — કન્ઝ્યુમર્સ સ્વતંત્ર રીતે સ્કેલ કરે છે.
પ્રવાહો
text
⚠️ Eventual consistency — readers may briefly see stale data
⚠️ Duplicate delivery — make consumers idempotent (use eventId)
⚠️ Ordering — only guaranteed within a partition/queue
⚠️ Hard to trace a flow across many consumers
શા માટે તેનું મહત્વ છે
ઈવેન્ટ-ડ્રિવન ડિજાઇન તે છે જે તમને ક્ષમતાઓ (વિશ્લેષણ, છેતરપીંડી તપાસ, સૂચનાઓ) ઉમેરવા દે છે માત્ર સબ્સ્ક્રાઇબ કરીને, વર્તમાન પ્રોડ્યુસર્સમાં શૂન્ય ફેરફાર સાથે.
તે વિસ્તૃતા અને સ્થિતિસ્થાપકતા આખર વિચારી સુસંગતતા અને કઠણ ડીબગીંગની કિંમતે આવે છે — કેન્દ્રીય વાપાર-અલ જે તમે ઈવેન્ટ-ડ્રિવન જવા માટે સ્વીકાર કરો છો.
