{"repo":"ahmsay/Solidvessel","free":true,"listed":false,"github":"https://github.com/ahmsay/Solidvessel","clone":"git clone https://github.com/ahmsay/Solidvessel.git","description":"A shopping application designed with microservices architecture","language":"Java","stars":35,"topics":["microservices","spring-boot","docker","spring-data","postgresql","rabbitmq","jib","kubernetes","spring-cloud-openfeign","spring-security"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Solidvessel This is a shopping application designed with microservices architecture. My main goal is to learn about devops and microservices, but I am also improving the domain part as much as possible. The project is about recording transactions of a shopping application. Check to see how to run. Architecture Development In development environment, microservices are running as separate processes on your computer. The API Gateway, database, RabbitMQ, Redis and Keycloak run as Docker containers. Since all microservices run on the same device, they should expose a different port. The communication between client and microservices is done through the API Gateway. Databases are in the same instance for the sake of simplicity in this environment. Test In test environment, the whole application lives in a Kubernetes cluster which runs on your computer. Microservices, API Gateway, databases, Redis, RabbitMQ and Keycloak now run as Kubernetes deployments or statefulsets. The communication between components is done through services (another Kubernetes component, shown as triangles). In terms of scalability, microservices can have more than one instances, called replicas. With Kubernetes, we can easily define a new replica for a microservice if we need more instances to distribute upcoming traffic. For example account service can have 1 replica and inventory service can have 3 replicas. Distributing the traffic across the replicas is also done with services. Production Production envi","default_branch":null,"files":null,"tree":[],"storefront":"/r/ahmsay","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ahmsay/Solidvessel/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}