Performance: Event patterns (event-based)
MEDIUM IMPACT
This concept affects how quickly the server responds to events and how efficiently it handles multiple event listeners without blocking the main thread.
import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; @EventsHandler(SomeEvent) export class SomeEventHandler implements IEventHandler<SomeEvent> { async handle(event: SomeEvent) { await new Promise(resolve => setImmediate(resolve)); // defer heavy work // heavy processing done asynchronously console.log('Event handled asynchronously'); } }
import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; @EventsHandler(SomeEvent) export class SomeEventHandler implements IEventHandler<SomeEvent> { handle(event: SomeEvent) { // heavy synchronous processing for (let i = 0; i < 1000000000; i++) {} console.log('Event handled'); } }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Synchronous event handlers with heavy work | N/A | N/A | N/A | [X] Bad |
| Asynchronous event handlers with deferred work | N/A | N/A | N/A | [OK] Good |