We are looking for a skilled developer with expertise in NestJS to design, develop, implement, and optimize an API Gateway with the following features. The API Gateway will facilitate communication between various clients (Web, Mobile, PC) and our microservices backend.
Key Features to Implement:
1. Parameter Validation: Ensure that incoming requests have the required and correct parameters before processing.
2. Allow-list/Deny-list: Implement pre-configured lists to control access based on valid/invalid requests (e.g., IPs, endpoints).
3. Authentication/Authorization: Add secure mechanisms to verify client identity and permissions for accessing resources.
4. Rate Limiting: Prevent abuse by controlling the number of requests a client can make within a given timeframe.
5. Dynamic Routing: Route incoming requests dynamically to appropriate microservices based on request paths or other criteria.
6. Service Discovery: Integrate with a service registry to locate and connect to the correct microservice.
7. Protocol Conversion: Handle requests with protocol conversions (e.g., HTTP to gRPC, WebSockets) for microservices that use different protocols.
8. Error Handling: Manage errors effectively with proper logging and return user-friendly error messages to clients.
9. Circuit Breaker: Implement a circuit breaker to prevent cascading failures by breaking the circuit after a predefined failure threshold.
10. Cache Integration (Redis): Leverage Redis to cache frequent API responses and improve performance.
11. Logging/Monitoring (Elastic): Use Elastic for comprehensive logging and monitoring to track API Gateway performance and health.
12. Enable request transformation to modify request headers, bodies, or parameters as needed.
13. Implement API versioning to manage and deprecate different versions of the API seamlessly.
14. Add distributed tracing to track requests as they traverse multiple services for improved debugging.
15. Implement data compression for responses to reduce bandwidth usage and improve performance.
16. Add security headers to enhance security by preventing common attacks such as XSS, CSRF.
17. Support WebSocket or [login to view URL] connections for real-time communication between clients and microservices.
Requirements:
• Proven expertise with NestJS for building API Gateways.
• Strong understanding of microservices architecture, Redis, and Elastic.
• Experience in implementing rate limiting, circuit breakers, and dynamic routing in NestJS.
• Familiarity with protocol handling (e.g., gRPC, WebSockets).
Timeline:
• The project must be completed within 3 calendar weeks from the start date.
Deliverables:
1. Fully functional API Gateway with the listed features implemented and tested.
2. Detailed documentation for deployment and maintenance.
3. Regular progress updates throughout the project.
Additional Information:
• Access to the existing backend architecture and necessary tools will be provided upon project initiation.
Budget: Please include your estimated cost and timeframe in your proposal.
How to Apply:
• Provide a portfolio or examples of NestJS projects with similar features.
• Highlight your experience with Redis, Elastic, and microservices integration.
We are excited to work with a talented developer to bring this project to life!