Node.js
Framework: Fastify
API & integrations
Rapid iteration and a rich ecosystem for user-facing APIs.
Use Cases
- •REST APIs
- •BFFs
- •Third-party integrations
This portfolio demonstrates how different backend languages can be used intentionally behind a single API gateway, based on workload characteristics rather than preference.
Interact with different backend implementations
Framework: Fastify
API & integrations
Rapid iteration and a rich ecosystem for user-facing APIs.
Verify backend service status
Send a message to the backend
Sends POST /contact to the selected backend.
Understanding the system design
The frontend communicates with a single API gateway. Requests are routed by path prefix to multiple backend implementations, each written in a different language but conforming to the same API contract.
Rationale behind architectural choices
The API gateway centralizes routing, prefix handling, and cross-cutting concerns, allowing backend services to remain simple and unaware of external URLs or clients.
Different workloads benefit from different language strengths. This architecture allows each service to be implemented in the most suitable language without impacting the frontend or other services.
All backends expose the same endpoints and response shapes, enabling runtime switching and ensuring the frontend remains decoupled from implementation details.
Backends do not know they are mounted behind/api/<service>. This responsibility belongs to the gateway, keeping services portable and easy to deploy independently.