Event-Driven Architecture — Node.js Patterns

Sanjeev SharmaSanjeev Sharma
1 min read

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

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro