MedPark
This is a reference application for building a distrbuted application using microservices built with ASP.net Core with various other tools and services. The list below contains a summary ot tools and services used to build the solution.
Tools used include
- Domain Driven Design fundamentals
- SQL and NoSQL databases (SQL Server, MongoDB
- Distributed caching with Redis
- CQRS, Commands, Queries & Events handlers
- Using RabbitMQ as a message queue with RawRabbit
- Microservice-to-Microservice HTTP communication with RestEase
- Service discovery with Consul
- Building Docker images, managing containers
- Logging using Serilog and Seq
- Manage Builds and Deployments with Azure DevOps
MedPark Contents
Below is a list off all the services, libraries and serverless functions that make MedPark run.
- API Service
- Basket Service
- Booking Service
- Catalog Service
- Customer Service
- Identity Service
- Medical Practice Service
- Notification Service
- Ordering Service
- Payment Service
- Frontend Web App
- MedPark Common Library
- Email Common Library
- Azure Functions
How to get started
To get started, you can clone this repo and then run the /scripts/git-clone-all.ps1
Powershell script. This script will clone all the MedPark repositries listed above.
Run infrastructure
To run MedPark, you first need to run all the foundational services that will be used by each of the services. The easiest and fast way to do this is by running a Docker Compose command:
docker-compose -f ./scripts/medpark-infra-compose.yml up
Once we have the infrastructure up and running we can go ahead and run our services:
docker-compose -f ./srcipts/medpark-services-compose.myl up
- Append the
--build
flag to the end of the command above if you are running the command for the first time.
All services will be accessible using ports 8000+ when running in docker