Performance: Message patterns (request-response)
MEDIUM IMPACT
This affects the responsiveness and throughput of backend services handling request-response messaging patterns.
import { Controller } from '@nestjs/common'; import { MessagePattern } from '@nestjs/microservices'; @Controller() export class AppController { @MessagePattern('sum') async handleSum(data: number[]) { // offload heavy processing asynchronously return await new Promise((resolve) => { setImmediate(() => { let result = 0; for (const num of data) { for (let j = 0; j < 1000000; j++) { result += num; } } resolve(result); }); }); } }
import { Controller } from '@nestjs/common'; import { MessagePattern } from '@nestjs/microservices'; @Controller() export class AppController { @MessagePattern('sum') async handleSum(data: number[]) { // heavy synchronous processing let result = 0; for (let i = 0; i < data.length; i++) { for (let j = 0; j < 1000000; j++) { result += data[i]; } } return result; } }
| Pattern | Event Loop Blocking | Response Delay | Throughput Impact | Verdict |
|---|---|---|---|---|
| Synchronous heavy processing | High (blocks event loop) | High (delays response) | Low (reduces throughput) | [X] Bad |
| Asynchronous offloading | Low (non-blocking) | Low (fast response) | High (better throughput) | [OK] Good |