Event-Driven Architecture — Node.js Patterns
Advertisement
Event-driven architecture decouples services through events. Perfect for real-time systems and scalability.
Event Emitter Pattern
import EventEmitter from "events";
const eventBus = new EventEmitter();
// Publish event
eventBus.emit("user:created", { userId: 123, email: "alice@example.com" });
// Subscribe to events
eventBus.on("user:created", (user) => {
console.log("Send welcome email:", user.email);
});
eventBus.on("user:created", (user) => {
console.log("Create profile:", user.userId);
});
Service Integration
// User Service
const userService = new EventEmitter();
userService.on("user:created", (user) => {
// Update analytics
});
// Email Service
const emailService = new EventEmitter();
emailService.on("user:created", (user) => {
// Send email
});
FAQ
Q: Event-driven vs REST? A: Event-driven for loose coupling, real-time. REST for synchronous calls.
Event-driven architecture enables scalable, responsive systems.
Advertisement