šŸ’”Building Microservices Architecture using Docker, CI/CD, RabbitMQ and caching with Redis.

šŸ“… Deadline: 28th April, 2024.

System Overview:

The Healthcare Appointment Scheduling System is a robust and scalable application designed to streamline the appointment scheduling process for healthcare providers and patients. It leverages microservices architecture using Docker, implements CI/CD pipelines for seamless deployment, integrates RabbitMQ for asynchronous communication, utilizes Redis for caching patient data and appointment schedules, implements rate limiting to manage system load, and incorporates a custom API gateway for secure and efficient communication between services.

Requirements Analysis:

Data Model Design:

This is the general data model which reflects our requirements -

HCAS_System (1).jpg

Database:

Although our data model has relational characteristics, it's not essential to store all data in a single database. Doing so could constrain scalability and create performance bottlenecks.

Instead, we'll distribute the data across multiple services, each responsible for managing specific tables. For our needs, we can employ either a relational database like PostgreSQL or a distributed NoSQL solution like Apache Cassandra. This approach optimizes both performance and scalability.

postgres-logo.png

Architecture:

We will be usingĀ Microservices ArchitectureĀ since it will make it easier to horizontally scale and decouple our services. Each service will have ownership of its own data model. Let's try to divide our system into some core services.

Services: