Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Michael Guay

Master the art of building scalable, distributed microservices with NestJS by developing a fully functional job engine from the ground up. This course is designed to teach you NestJS microservices the right way, covering everything from architecture and design to deployment and scaling in production.

Read more

Master the art of building scalable, distributed microservices with NestJS by developing a fully functional job engine from the ground up. This course is designed to teach you NestJS microservices the right way, covering everything from architecture and design to deployment and scaling in production.

You’ll start by setting up a monorepo with Nx, allowing you to manage multiple services within a single codebase efficiently. Using gRPC as the transport layer, you'll enable high-performance, low-latency communication between services. The course dives into Apache Pulsar, a powerful distributed messaging system, that allows us to add multiple consumers to a shared queue & achieve scale. You'll also expose a GraphQL API, providing a flexible and efficient way to interact with your microservices.

Security is a core focus, and you'll implement JWT-based authentication with secure, HTTP-only cookies. Throughout the course, everything is built using object-oriented design principles, ensuring a clean, modular, and reusable codebase that follows DRY (Don’t Repeat Yourself) principles. This makes your codebase more maintainable as it scales.

You'll also optimize your Docker setup, using Nx libraries with separate package.json files for better dependency management. Horizontal scaling techniques will ensure your services can handle increasing workloads efficiently. As your job engine matures, you'll implement job state tracking, allowing you to monitor job progress.

For database management, you’ll use Prisma ORM and Drizzle ORM with PostgreSQL, ensuring type safety, migrations, and optimized queries. Finally, you’ll deploy everything to Kubernetes, taking your microservices to production with AWS, a custom domain, and SSL encryption.

By the end of this course, you'll have a fully operational distributed job engine with robust state tracking and the expertise to design, develop, and deploy scalable NestJS microservices in real-world production environments.

Enroll now

What's inside

Learning objectives

  • Build a fully functional distributed job engine using nestjs microservices
  • Structure a scalable monorepo using nx for efficient development and dependency management
  • Implement grpc as the transport layer for high-performance, low-latency communication
  • Use apache pulsar for distributed messaging and reliable job processing
  • Expose a graphql api for flexible data access and interaction
  • Secure microservices with jwt authentication and http-only cookies
  • Apply object-oriented design principles to keep code modular, reusable, and maintainable
  • Implement horizontal scaling to efficiently handle high workloads
  • Optimize dockerization with nx libraries and independent package.json files
  • Use prisma orm and drizzle orm with postgresql for robust database management
  • Deploy microservices to kubernetes with best practices for production readiness
  • Set up a production-grade aws deployment with a custom domain and ssl encryption
  • Gain hands-on experience designing, developing, and deploying real-world nestjs microservices
  • Show more
  • Show less

Syllabus

Introduction
System Architecture
Prerequisites
Resources
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses gRPC as the transport layer, which enables high-performance, low-latency communication between services, a crucial aspect of modern backend systems
Deploys everything to Kubernetes, taking microservices to production with AWS, a custom domain, and SSL encryption, which are essential skills for cloud engineers
Structures a scalable monorepo using Nx for efficient development and dependency management, which is a common practice in large-scale software projects
Secures microservices with JWT authentication and HTTP-only cookies, which are standard security measures for web applications and APIs
Uses Prisma ORM and Drizzle ORM with PostgreSQL for robust database management, ensuring type safety, migrations, and optimized queries, which are important for database administrators
Requires prior knowledge of NestJS, as it dives directly into microservices architecture and implementation, which may be a barrier for beginners

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Nestjs distributed microservices job engine

According to learners, this course provides a solid foundation and highly practical experience in building complex distributed systems using NestJS. Many appreciate the real-world project of a job engine, which helps solidify concepts like microservices communication via gRPC and message queuing with Apache Pulsar. While the course covers a wide range of modern technologies including Docker and Kubernetes deployment, some students note that the setup and configuration can be challenging and occasionally encounter outdated dependencies or versions, typical for fast-moving tech stacks. However, the overall consensus points to a valuable learning experience for those looking to dive deep into NestJS microservices.
Instructor explanations are generally clear.
"The instructor explains complex concepts in a clear and understandable manner."
"Following along with the coding demos was easy due to the clear narration."
"I appreciated how well the instructor explained the architectural decisions."
"Complex topics were broken down effectively."
Provides substantial depth on key topics.
"The course goes deep into the architecture and implementation details of microservices."
"I feel I gained a thorough understanding of how to build and deploy NestJS microservices."
"The coverage of gRPC, Pulsar messaging, and Kubernetes deployment was surprisingly detailed."
"It provides comprehensive insights into building a production-ready system."
Appreciated for covering modern, relevant tools.
"It's great to see gRPC, Pulsar, and Kubernetes covered alongside NestJS; a very modern stack."
"The course introduces several powerful technologies that are essential for modern distributed systems."
"Learning how to integrate NestJS with tools like Apache Pulsar was a key takeaway."
"The focus on gRPC for inter-service communication is very relevant to current industry practices."
Highly valued for its real-world application.
"The hands-on project of building a job engine from scratch was incredibly insightful and practical."
"Building a real-world microservice application using NestJS solidified my understanding of complex concepts."
"I found the practical coding examples and the final project extremely helpful for learning."
"Applying these concepts to a functional job engine made the theory much clearer for me."
Course content may need minor version updates.
"Some dependencies and commands shown in the videos were slightly outdated, requiring minor adjustments."
"Ran into a few version conflicts with libraries used in the course."
"It's a fast-moving field, so keeping up with the exact library versions presented is a challenge."
"Needed to consult documentation for newer versions of some tools like Nx."
Initial setup and configuration can be difficult.
"Getting the initial monorepo setup and dependencies configured correctly took more time than expected."
"Encountered issues with environment setup and package versions which required troubleshooting."
"The complexity of setting up multiple services and infrastructure locally was a bit overwhelming initially."
"I had some trouble following the exact steps for the Kubernetes deployment setup."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in NestJS Microservices: Build a Distributed Job Engine with these activities:
Review Microservices Architecture
Solidify your understanding of microservices architecture to better grasp the course's core concepts and design decisions.
Show steps
  • Read articles on microservices patterns.
  • Watch introductory videos on YouTube.
  • Summarize the key benefits and drawbacks.
Brush Up on NestJS Fundamentals
Revisit NestJS fundamentals to ensure a smooth learning experience when building microservices.
Browse courses on NestJS
Show steps
  • Review the official NestJS documentation.
  • Complete a basic NestJS tutorial.
  • Practice building simple APIs.
Read 'Production-Ready Microservices'
Gain insights into building production-ready microservices to enhance your understanding of deployment and scaling strategies.
Show steps
  • Read the chapters on monitoring and logging.
  • Take notes on best practices for deployment.
  • Reflect on how to apply these concepts to the job engine.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement a Simple gRPC Service
Practice implementing gRPC communication to reinforce your understanding of the transport layer used in the course.
Show steps
  • Define a simple gRPC service definition.
  • Implement the server and client in NestJS.
  • Test the communication between the client and server.
Read 'Designing Data-Intensive Applications'
Deepen your understanding of distributed systems and data management to improve your ability to design and scale microservices.
View Secret Colors on Amazon
Show steps
  • Read the chapters on distributed systems.
  • Take notes on consistency models.
  • Reflect on how these concepts apply to the job engine's data management.
Document the Job Engine Architecture
Create a detailed architectural diagram and documentation to solidify your understanding of the job engine's components and interactions.
Show steps
  • Create a diagram of the system architecture.
  • Describe the role of each microservice.
  • Explain the data flow between services.
  • Document the API endpoints.
Contribute to a NestJS Open Source Project
Contribute to an open-source NestJS project to gain practical experience and learn from other developers.
Show steps
  • Find a NestJS project on GitHub.
  • Identify an issue to work on.
  • Submit a pull request with your solution.

Career center

Learners who complete NestJS Microservices: Build a Distributed Job Engine will develop knowledge and skills that may be useful to these careers:
Microservices Architect
A Microservices Architect is responsible for designing and overseeing the implementation of microservices-based systems. This course helps you build a foundation by teaching you how to build scalable, distributed microservices using NestJS. You'll learn about architecture and design principles, which are crucial for a microservices architect. The course covers gRPC for high-performance communication and Apache Pulsar for distributed messaging, tools that are essential for designing efficient and reliable microservices architectures. Furthermore, deploying to Kubernetes and focusing on security with JWT-based authentication aligns perfectly with the responsibilities of an architect ensuring robust and secure systems.
Backend Engineer
A Backend Engineer builds and maintains the server-side logic and databases that power applications. The course provides extensive knowledge in building backend systems with NestJS. You'll gain hands-on experience with technologies like gRPC, Apache Pulsar, Prisma, and PostgreSQL, all of which are commonly used in backend development. The course's emphasis on object-oriented design, Dockerization, and deployment to Kubernetes aligns directly with the tasks a backend engineer faces daily. Learning to secure microservices with JWT authentication and implementing horizontal scaling will make you a more effective and valuable backend engineer.
DevOps Engineer
DevOps Engineers focus on automating and streamlining the software development lifecycle, including deployment and infrastructure management. This course is very useful because it covers critical aspects of DevOps, such as Dockerization, Kubernetes deployment, and CI/CD pipelines using GitHub Actions. You'll learn how to optimize your Docker setup, manage dependencies efficiently with Nx, and deploy microservices to AWS with a custom domain and SSL encryption. These are all essential skills for a DevOps engineer. The course gives you hands-on experience in automating and managing the deployment of microservices, aligning perfectly with DevOps responsibilities.
Cloud Engineer
A Cloud Engineer is responsible for designing, building, and maintaining cloud infrastructure. The course aligns perfectly with the role as it covers deploying microservices to Kubernetes on AWS, a core task for cloud engineers. Through this course, you will gain practical experience with Dockerization, setting up CI/CD pipelines, and managing cloud resources. Understanding how to configure custom domains and SSL encryption is also vital for securing cloud deployments. The hands-on approach to deploying a distributed job engine makes you well-prepared to handle real-world cloud infrastructure challenges.
Software Architect
A Software Architect designs the overall structure of software systems, ensuring they are scalable, maintainable, and secure. The course is useful as it covers key architectural patterns, such as microservices, and technologies like gRPC and Apache Pulsar. You'll learn how to structure a scalable monorepo with Nx, apply object-oriented design principles, and implement horizontal scaling. These are critical skills for designing robust software architectures. Furthermore, the course's focus on security with JWT-based authentication and deployment to Kubernetes aligns with the architect's need to ensure the system is secure and easily deployable.
Platform Engineer
A Platform Engineer builds and maintains the underlying platform that enables software development and deployment. The course helps build a platform because it covers essential technologies and practices, such as Dockerization, Kubernetes, and CI/CD pipelines. You'll gain hands-on experience deploying microservices to AWS, setting up custom domains, and managing infrastructure as code. Learning how to optimize Docker setups and manage dependencies efficiently ensures the platform is scalable and maintainable. The course gives you practical skills in building and managing the kind of platforms that many modern software companies rely on.
Systems Engineer
Systems Engineers are responsible for designing, implementing, and managing the IT infrastructure of an organization. This course helps develop skills in building and deploying distributed systems using NestJS, which are essential for modern IT infrastructures. You'll learn about gRPC, Apache Pulsar, and Kubernetes, technologies that are crucial for building scalable and reliable systems. The course's focus on security, Dockerization, and automation directly aligns with the responsibilities of a Systems Engineer, making these tasks more efficient and manageable. The course also covers database management using Prisma and Drizzle ORM.
Application Developer
Application Developers build and maintain software applications. This course teaches how to build a distributed job engine using NestJS microservices, a valuable skill for any application developer. You'll learn about technologies like gRPC and GraphQL, which are used for building modern APIs. The course also covers database management with Prisma and Drizzle ORM, as well as deployment to Kubernetes. Learning these skills helps you develop more robust and scalable applications, and also helps you understand how to integrate different services and components effectively.
Software Developer
Software Developers create, test, and maintain software applications. The course is beneficial as it provides hands-on experience building a distributed job engine with NestJS. You'll learn how to implement gRPC for high-performance communication, use Apache Pulsar for distributed messaging, and expose a GraphQL API for flexible data access. The course also covers security with JWT authentication and deployment to Kubernetes, skills that are very useful for any software developer working on modern applications, especially showing you how to write modular, reusable, and maintainable code.
API Developer
An API Developer designs, develops, and maintains Application Programming Interfaces that allow different software systems to communicate. The course may be useful because it covers essential aspects of API development, such as setting up gRPC for high-performance communication and exposing a GraphQL API for flexible data access. You'll also learn how to secure APIs with JWT authentication ensuring they are robust and secure. The use of NestJS microservices provides a structured approach to building scalable and maintainable APIs.
Solutions Architect
A Solutions Architect designs and implements solutions to complex business problems using technology. This course may be useful as it provides a practical understanding of microservices architecture and deployment, which can be valuable for designing scalable and robust solutions. You'll gain insights into using technologies like gRPC, Apache Pulsar, and Kubernetes, which are often components in modern solutions. The course's hands-on approach to building a distributed job engine can help you in designing effective and efficient solutions.
Technical Lead
A Technical Lead guides a team of developers and ensures the successful delivery of software projects. This course may be useful because it provides a strong foundation in building and deploying microservices, which can be valuable for leading a team working on similar projects. You'll learn how to structure a scalable monorepo, apply object-oriented design principles, and implement horizontal scaling. The course's focus on code quality and maintainability will benefit the team and ensure the project stays on track.
Database Administrator
A Database Administrator manages and maintains databases ensuring their performance, security, and availability. This course may be useful as it touches on database management with Prisma ORM and Drizzle ORM with PostgreSQL. You'll gain insights into database migrations and optimized queries, which are relevant to database administration. While the course's primary focus is on microservices, understanding how databases integrate with these systems is valuable for a Database Administrator, especially when setting up and managing databases in a microservices environment.
Technical Project Manager
A Technical Project Manager oversees software development projects, ensuring they are completed on time and within budget. The course may be useful as it provides a broad overview of the technologies and processes involved in building and deploying microservices. You'll gain an understanding of Dockerization, Kubernetes, and CI/CD pipelines. While the course is technical, being familiar with these concepts can help you better manage technical projects and communicate with the development team, especially if it involves a project from start to finish.
Quality Assurance Engineer
A Quality Assurance Engineer tests software to ensure it meets quality standards and requirements. This course may be useful because it exposes you to the architecture and components of a microservices-based system. While it does not directly focus on testing microservices, understanding the system's design, including gRPC, Apache Pulsar, and GraphQL, can help you develop more effective test strategies. Understanding how different components interact can improve your ability to identify potential issues and ensure the system's reliability.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in NestJS Microservices: Build a Distributed Job Engine.
Provides a comprehensive overview of the challenges and solutions involved in building scalable and reliable data-intensive applications. It covers topics such as data models, storage engines, distributed systems, and consistency models. While not specific to NestJS, it provides valuable background knowledge for understanding the design choices behind the microservices architecture used in the course. This book is commonly used as a textbook at academic institutions.
Provides practical guidance on designing, building, testing, and deploying microservices in production environments. It covers essential topics such as monitoring, logging, security, and fault tolerance. It is particularly useful for understanding the operational aspects of microservices, which complements the course's focus on building a job engine. This book is more valuable as additional reading to provide more depth to the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser