Performance notes

  • Fastify: schema-driven, AJV validation, low-overhead routing; typically better RPS and lower p99s.
  • Express: mature ecosystem; middleware can add overhead; great for quick prototypes.

Bench considerations

  • Compare with same validation/parsing; disable unnecessary middleware in Express.
  • Test under keep-alive and HTTP/1.1 & HTTP/2 where applicable.
  • Measure event loop lag and heap; not just RPS.

Migration tips

  • Start new services with Fastify; for existing Express apps, migrate edge routes first.
  • Replace middleware with hooks/plugins; map Express middlewares to Fastify equivalents.
  • Validate payloads with JSON schema for speed and safety.

Operational tips

  • Use pino (Fastify default) for structured logs; avoid console log overhead.
  • Keep plugin count minimal; watch async hooks cost.
  • Load test with realistic payload sizes; profile hotspots before/after migration.

Takeaway: Fastify wins on raw throughput and structured DX; Express still fine for smaller apps, but performance-critical services benefit from Fastify’s lower overhead.