Master the art of creating scalable and distributed microservices with NestJS by developing a fully functional Job Engine from scratch—a distributed task processing system. This course will teach you to build microservices the right way: from architecture and design to deployment and scaling in production.
Getting Started
You will begin by setting up a monorepo with Nx to efficiently manage multiple services within a single codebase. The use of gRPC will enable you to implement high-performance, low-latency communication between services.
Distributed Messaging with Apache Pulsar
Special attention is given to Apache Pulsar—a distributed messaging system that allows multiple consumers to connect to a shared queue, facilitating horizontal scaling.
Developing a GraphQL API
To interact with the system, you'll create a GraphQL API, providing flexible and convenient data access for users.
Implementing Security
JWT-based Authentication
Security is a crucial aspect of the course. You will implement JWT-based authentication with secure HTTP-only cookies, ensuring safe and secure transactions.
Object-Oriented Design
The entire code is built on the principles of object-oriented design and DRY (Don't Repeat Yourself), making the architecture clean, modular, and easily maintainable as the project grows.
Optimizing with Docker Containers
You will optimize Docker container builds and apply Nx libraries, with separate package.json files for flexible dependency management.
Horizontal Scaling
Learn techniques for horizontal scaling to ensure your services can handle increasing loads. Additionally, implement task state tracking to monitor the progress of task execution effectively.
Database and ORM Integration
For database operations, you'll work with Prisma ORM and Drizzle ORM alongside PostgreSQL to perform type-safe migrations and optimized queries.
Final Project Deployment
The final stage involves deployment in Kubernetes using AWS, a custom domain, and SSL encryption to secure the application in a real-world environment.
Course Completion
By the end of the course, you will have developed a fully operational distributed Job Engine and gained a systematic understanding of how to design, develop, and operate scalable microservices built on NestJS in production environments.