Booking Microservices Expressjs

screenshot of Booking Microservices Expressjs
express

Practical microservices, built with Node.Js, CQRS, Vertical Slice Architecture, Event-Driven Architecture, Postgres, RabbitMQ, Express and the latest technologies.

Overview:

The project is a practical and imaginary microservices system designed to implement an infrastructure for distributed systems using modern technology and architecture principles like Vertical Slice Architecture, Event Driven Architecture, CQRS, Postgres, RabbitMq, and Express in Node.Js. The focus of the project is on the technical implementation of a distributed system with various microservices concepts like Messaging, Tracing, Event Driven Architecture, Vertical Slice Architecture, and CQRS.

Features:

  • Vertical Slice Architecture: Utilization of this architecture for organizing code at an architecture level.
  • Event Driven Architecture with Rabbitmq: Implementing event-driven communication between microservices using Rabbitmq.
  • Data Centric Architecture with CRUD: Following a data-centric approach based on CRUD in all services.
  • CQRS with MediatrJs: Implementation of CQRS pattern using MediatrJs internal library.
  • Express and Rest Communication: Utilizing Express for web framework and REST for internal communication between microservices.
  • Postgres with Typeorm: Database management at the database level using Postgres with Typeorm.
  • Dependency Injection with Tsyringe: Handling dependency injection in the project.
  • Authentication and Authorization with Passport: Using Passport for user authentication and authorization based on JWT.

Summary:

The project is focused on implementing a microservices system with an emphasis on technical aspects like architecture, communication patterns, database management, and testing. Key features include Vertical Slice Architecture, Event Driven Architecture with Rabbitmq, use of CQRS pattern, and various tools for logging, validation, and monitoring. The project is a work in progress, and future goals include enhancements like MongoDB integration, Domain Driven Design implementation, and advanced messaging patterns like Inbox and Outbox Pattern for message delivery reliability.

express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.