{"repo":"meysamhadeli/booking-microservices-java-spring-boot","free":true,"listed":false,"github":"https://github.com/meysamhadeli/booking-microservices-java-spring-boot","clone":"git clone https://github.com/meysamhadeli/booking-microservices-java-spring-boot.git","description":"A practical distributed system, built with Java Spring Boot, Vertical Slice Architecture, Event Driven Architecture, CQRS, DDD, gRpc, MongoDB and RabbitMq.","language":"Java","stars":141,"topics":["java","spring-boot","cqrs","ddd","event-driven-architecture","grpc","messaging","microservice","microservices","mongodb"],"license":"MIT","category":"networking-infra","readme_excerpt":"🚀 A practical and imaginary microservices for implementing an infrastructure for up and running distributed system with the latest technology and architecture like Vertical Slice Architecture, Event Driven Architecture, CQRS, DDD, gRpc, MongoDB, RabbitMq in Java Spring Boot. You can find .Net ported of this project in this link: 🔗 booking-microservices Table of Contents - The Goals of This Project - Plan - Technologies - Libraries - The Domain and Bounded Context - Service Boundary - Structure of Project - How to Run - Docker Compose - Build - Run - Test - Documentation Apis - Support - Contribution The Goals of This Project - :sparkle: Using Vertical Slice Architecture for architecture level. - :sparkle: Using Spring MVC as a Web Framework . - :sparkle: Using Domain Driven Design (DDD) to implement all business processes in microservices. - :sparkle: Using Spring AMQP on top of Rabbitmq for Event Driven Architecture between our microservices. - :sparkle: Using gRPC for internal communication between our microservices. - :sparkle: Using CQRS implementation with Mediator library. - :sparkle: Using Spring Data JPA for data persistence and ORM in write side with Postgres . - :sparkle: Using Spring Data MongoDB for data persistence and ORM in read side with MongoDB . - :sparkle: Using Inbox Pattern for ensuring message idempotency for receiver and Exactly once Delivery . - :sparkle: Using Outbox Pattern for ensuring no message is lost and there is at At Least One Delivery . - :","default_branch":null,"files":null,"tree":[],"storefront":"/r/meysamhadeli","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/meysamhadeli/booking-microservices-java-spring-boot/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."}