Skip to main content
CF

NestJS Microservices: Build a Distributed Job Engine

15h 9s
English
Paid

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.

About the Authors

Michael Guay

Michael Guay thumbnail

Michael Guay is a US software engineer and prolific independent instructor publishing course material on the .NET / C# stack and the modern web frameworks adjacent to it.

The course catalog covers C# and .NET fundamentals, ASP.NET Core for back-end development, Entity Framework for data access, Blazor for full-stack C# web applications, plus the surrounding tooling and deployment patterns. The teaching style is patient and project-oriented, with each course typically building a working application end-to-end.

The CourseFlix listing under this source carries over 20 Michael Guay courses spanning that range. Material is paid and aimed at developers picking up the .NET stack or extending their existing .NET experience into newer parts of the platform.

Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 104 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 104 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 1.1 -Introduction
All Course Lessons (104)
#Lesson TitleDurationAccess
1
1.1 -Introduction Demo
03:40
2
1.2 -System Architecture
06:52
3
1.3 -Prerequisites
01:36
4
1.4 -Resources
01:08
5
1.5 -Nx Monorepo Setup - Part 1
09:56
6
1.6 -Nx Monorepo Setup - Part 2
08:19
7
1.7 -GitHub Actions CI
10:40
8
2.1 -Prisma Schema
12:59
9
2.2 -Nx Prisma Targets
12:43
10
2.3 -GraphQL & Nx Libs - Part 1
09:22
11
2.4 -GraphQL & Nx Libs - Part 2
10:45
12
2.5 -Users Mutation & Query
16:11
13
3.1 -Commit Hooks
06:45
14
3.2 -Unit Tests
05:05
15
3.3 -Config Module
02:34
16
3.4 -Nx Options
01:14
17
4.1 -JWT Module
07:34
18
4.2 -Config Cleanup
02:34
19
4.3 -User Verification
12:50
20
4.4 -Sign JWT Cookie
13:38
21
4.5 -JWT Strategy
14:32
22
4.6 -User Parameter Decorator
02:57
23
4.7 -Auth Playground Settings
00:43
24
5.1 -Generate Application
05:26
25
5.2 -Job Decorator
09:17
26
5.3 -Discovery Module
07:25
27
5.4 -Jobs Resolver
16:10
28
5.5 -Jobs Playground Settings
00:43
29
6.1 -Auth Proto
07:47
30
6.2 -TS Proto
13:22
31
6.3 -gRPC Server
10:08
32
6.4 -Auth Controller & Client
07:32
33
6.5 -gRPC GQL Auth Guard
11:08
34
6.6 -gRPC Auth Strategy
06:45
35
7.1 -Pulsar Client
12:20
36
7.2 -Abstract Job Producer
16:51
37
7.3 -Abstract Consumer
10:45
38
7.4 -Job Executor
11:49
39
7.5 -JSON GraphQL Scalar
04:49
40
7.6 -Message Serialization & Error Handling
13:32
41
7.7 -Job Validation
07:16
42
8.1 -Pulsar Batch Producer
07:52
43
8.2 -Backlog Test Script
16:50
44
9.1 -NPM Workspaces
11:25
45
9.2 -New Libraries
08:34
46
9.3 -Library Dependencies
08:20
47
9.4 -Library Webpack
08:18
48
9.5 -Update Applications
09:16
49
9.6 -Module Alias
09:10
50
9.7 -Jobs Dockerfile
13:35
51
9.8 -Finish Dockerfiles
07:50
52
9.9 -Common Webpack
09:31
53
10.1 -Pino Logger
09:16
54
10.2 -GraphQL Logger
08:07
55
10.3 -gRPC Logger
08:48
56
11.1 -Elastic Container Registry
04:17
57
11.2 -GitHub Action ECR
14:06
58
11.3 -Minikube
03:30
59
11.4 -Update Prettier
01:25
60
11.5 -Create Helm Chart
04:16
61
11.6 -Jobs Deployment
12:18
62
11.7 -Registry Creds Addon
06:36
63
11.8 -Pulsar & Postgres
12:10
64
11.9 -Environment Variables
09:22
65
11.10 -Prisma Debian
02:27
66
11.11 -Executor & Auth Deployment
12:42
67
11.12 -Auth gRPC URL
02:01
68
11.13 -Services
09:23
69
11.14 -Minikube Service
06:56
70
11.15 -Prisma Migrations
09:32
71
11.16 -Job Execution
15:16
72
12.1 -Fibonacci Script
09:53
73
12.2 -Horizontal Scaling
08:59
74
13.1 -File Upload
15:44
75
13.2 -Products Service
04:41
76
13.3 -Drizzle ORM
15:36
77
13.4 -Drizzle Kit Migrations
07:28
78
13.5 -Products Proto
07:59
79
13.6 -Products gRPC
04:37
80
13.7 -Load Products Job
13:37
81
13.8 -Job File Data
12:36
82
13.9 -Load Products Consumer
03:36
83
13.10 -Products gRPC Client
08:48
84
13.11 -Categories
12:08
85
13.12 -Products Dockerfile
07:52
86
13.13 -Products Helm
12:00
87
13.14 -Products Helm Testing
07:12
88
13.15 -Jobs Volume
08:51
89
14.1 -Jobs Prisma
08:31
90
14.2 -Save Job
08:11
91
14.3 -Job Acknowledge
11:13
92
14.4 -Executor Acknowledge
13:44
93
14.5 -Acknowledge Testing
03:24
94
14.6 -Jobs Dockerfile Prisma
03:11
95
14.7 -Acknowledge Helm
10:36
96
14.8 -Job Status Resolver
07:49
97
15.1 -Ingress
10:20
98
15.2 -AWS CLI
03:49
99
15.3 -Elastic Kubernetes Service
03:44
100
15.4 -LB Controller & CSI Driver
08:22
101
15.5 -AWS Helm Chart - Part 1
09:26
102
15.6 -AWS Helm Chart - Part 2
08:28
103
15.7 -Horizontal Scaling
06:45
104
15.8 -Custom Domain & SSL
10:08
Unlock unlimited learning

Get instant access to all 103 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What are the prerequisites for enrolling in this course?
The course recommends a foundational understanding of JavaScript and TypeScript, as well as familiarity with Node.js. Some basic knowledge of microservices architecture, Docker, and version control with Git will also be advantageous. The early lessons, including 'System Architecture' and 'Nx Monorepo Setup', are designed to get you up to speed with the necessary tools and concepts.
What practical projects will I build in this course?
You'll develop a distributed job engine, a task processing system, using NestJS. This involves setting up a monorepo with Nx, implementing a distributed messaging system with Apache Pulsar, and creating a GraphQL API. The course covers the full development cycle including security, optimization with Docker containers, and deployment strategies.
Who is the target audience for this course?
This course is well-suited for developers interested in building scalable, distributed applications using NestJS. It is ideal for those looking to gain practical experience with microservices and who have a basic understanding of JavaScript and TypeScript. System architects and backend developers can also benefit from the architectural insights and hands-on exercises.
What tools and platforms are specifically covered in this course?
The course extensively covers tools such as Nx for monorepo management, Apache Pulsar for distributed messaging, and Docker for containerization. It also includes lessons on setting up a GraphQL API, JWT-based authentication, and using gRPC for service communication. Deployment is addressed through Elastic Container Registry and Minikube.
What topics are not covered in this course?
The course does not cover frontend development or client-side frameworks. It focuses primarily on backend architecture and microservices. Additionally, while it touches on deployment with Minikube and Elastic Container Registry, it does not delve into advanced DevOps practices or cloud provider specifics beyond these.
How much time should I expect to commit to this course?
With 104 lessons, the course requires a substantial time commitment. While the exact runtime is not specified, students should expect to dedicate several weeks, depending on their pace of learning and familiarity with the prerequisites. Consistent, focused study will be necessary to fully grasp the complex concepts and complete the hands-on projects.
How will the skills learned in this course carry over to other courses or careers?
The skills gained, such as setting up a monorepo, using Apache Pulsar, and developing a secure, scalable microservices architecture, are applicable across various backend development roles. Understanding gRPC, JWT-based security, and Docker containerization will enhance your capabilities in any microservices-focused position and provide a solid foundation for further specialization or advanced studies in distributed systems.