How to Build & Deploy Scalable Microservices with NodeJS, TypeScript and Docker || A Comprehesive Guide

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • nodejs_unit_testing_guide

    A detailed guide on unit testing in a nodejs project with express and typescript

  • Github Repository

  • Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

  • Our products microservice is also straight forward just like how the auth has been. As previously plotted, we will be using different technologies on each service and we are using PostgreSQL as a database and prisma orm(Object Relational Mapper) for querying our DB. ORMs are used to translate between the data representations used by databases and those used in object-oriented programming, and in this service, we will be using one of the most common ones in the nodejs ecosystem, Prisma. It is the only fully type-safe ORM in the TypeScript ecosystem. The generated Prisma Client ensures typed query results even for partial queries and relations.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • PostgreSQL

    Mirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Submitting_a_Patch

  • On the other hand, PostreSQL is a free and open-source relational database management system emphasizing extensibility and SQL compliance. In this product service, it will be our database.

  • MySQL

    MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

  • Our orders microservice will have its own set of teachnologies just like we earlier plotted that is mysql database and sequelize orm. MySQL is an open-source relational database management system (RDBMS) that is widely used for building web applications and managing data. It is a popular choice for many developers and organizations due to its performance, reliability, and ease of use. Sequelize is a popular Object-Relational Mapping (ORM) library for Node.js. It provides a way to interact with relational databases like MySQL, PostgreSQL, SQLite, and MSSQL using JavaScript or TypeScript. It simplifies database operations by allowing developers to use JavaScript objects to represent database tables and records, instead of writing raw SQL queries. In this microservice, we will use it to query our MySQL database.

  • MongoDB

    The MongoDB Database

  • We will be using MongoDB as a database on both the Auth microservice and notifications microservice, sign up for a MongoDB Atlas account here incase you donot have one and donot have its desktop application(mongodb campass) installed and would like to use mongodb atlas. This cloud-based database service offers a free tier and simplifies the process of managing MongoDB databases.

  • docker

    Docker - the open-source application container engine (by microsoft)

  • Familiarize yourself with TypeScript and Express.js, as they form the foundation of our microservices. If you're new to these technologies, consider exploring this article and this to get comfortable with the basics. In addition, you need some basic knowledge of docker and ORMs in nodejs ecosystem especially prisma and sequelize. You can checkout this article to level up your docker skills where I explained everything from environment setup to deployment with a CI/CD pipeline using nodejs and typescript.

  • Sequelize

    Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.

  • Our orders microservice will have its own set of teachnologies just like we earlier plotted that is mysql database and sequelize orm. MySQL is an open-source relational database management system (RDBMS) that is widely used for building web applications and managing data. It is a popular choice for many developers and organizations due to its performance, reliability, and ease of use. Sequelize is a popular Object-Relational Mapping (ORM) library for Node.js. It provides a way to interact with relational databases like MySQL, PostgreSQL, SQLite, and MSSQL using JavaScript or TypeScript. It simplifies database operations by allowing developers to use JavaScript objects to represent database tables and records, instead of writing raw SQL queries. In this microservice, we will use it to query our MySQL database.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • rabbitmq-website

    RabbitMQ website

  • RabbitMQ comes with administrative tools to manage user permissions and broker security and is perfect for low latency message delivery and complex routing. In comparison, Apache Kafka architecture provides secure event streams with Transport Layer Security(TLS) and is best suited for big data use cases requiring the best throughput.

  • node

    Node.js JavaScript runtime ✨🐢🚀✨

  • Have Node.js and npm (Node Package Manager) installed on your system. These are essential for developing and running our microservices in a NodeJS environment. You can download Node.js from the official website or use a version manager like nvm for better control over Node.js versions.

  • ApacheKafka

    A curated re-sources list for awesome Apache Kafka

  • RabbitMQ comes with administrative tools to manage user permissions and broker security and is perfect for low latency message delivery and complex routing. In comparison, Apache Kafka architecture provides secure event streams with Transport Layer Security(TLS) and is best suited for big data use cases requiring the best throughput.

  • istio

    Connect, secure, control, and observe services.

  • It is a dedicated infrastructure layer that manages service-to-service communication, providing features like load balancing, encryption, authentication, and monitoring. Istio deploys sidecar proxies alongside each microservice instance. These proxies handle communication, providing features like load balancing, service discovery, encryption, monitoring and authentication.

  • gRPC

    The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

  • gRPC is a high-performance, open-source RPC (Remote Procedure Call) framework initially developed by Google. It uses Protocol Buffers for serialization and supports bidirectional streaming.

  • foundation

    GraphQL Foundation Charter and Legal Documents (by graphql)

  • A query language for APIs that allows clients to request only the data they need. It provides a more flexible and efficient alternative to RESTful APIs. GraphQL provides a single endpoint for multiple data sources, making it efficient for clients to retrieve only the necessary information forexample if a Node.js microservice uses GraphQL, a client can send a query to request specific data, and the GraphQL service will fetch the required information from the underlying data sources and respond accordingly.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts