Olay odaklı mimari (EDA), sistem bileşenlerinin olaylar aracılığıyla etkileşimde bulunduğu bir yaklaşımdır: meydana gelen değişiklikler veya eylemlerle ilgili iletiler. Sistem, olay üretenler (producers), olay tüketicileri (consumers) ve olayları ileten bir mesaj otobüsü (message bus, broker) içermektedir.
EDA, esnek bir şekilde ölçeklenebilir ve zayıf bağlı sistemler yaratmaya olanak tanır. Bir bileşendeki değişiklik, diğerlerinin değiştirilmesini gerektirmez: yalnızca olayların üretilmesi ve işlenmesi gerekir.
Kod örneği (Node.js'te olay üretimi ve işlenmesi):
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const emitter = new MyEmitter(); // Olay işleyici emitter.on('userCreated', (user) => { console.log('Kullanıcı oluşturuldu:', user); }); // Olay üretimi emitter.emit('userCreated', { id: 1, name: 'Ivan' });
Anahtar özellikler:
EDA, mikro hizmet mimarisinin zıttı mıdır?
Hayır, bu zıt değildir. Mikro hizmetler genellikle hizmetler arasında iletişim için EDA'yı kullanır.
EDA sadece mesaj brokerları ile mi kullanılabilir?
Gerekli değildir. Yerel olaylar (örneğin, Observer desenini kullanarak) da EDA'yı gerçekleştirir, ancak brokerlar dağıtık sistemler kurmayı mümkün kılar.
EDA, verilerin değişmezliğini garanti eder mi?
Hayır. EDA, bileşenlerin etkileşimi ile ilgilidir; yeniden işleme dayanıklılığı (idempotency) ve veri tutarlılığını açıkça gerçekleştirmek gerekir.