{"id":29970576,"url":"https://github.com/koriebruh/spring-services","last_synced_at":"2026-04-20T09:03:00.735Z","repository":{"id":304389056,"uuid":"957567476","full_name":"koriebruh/spring-services","owner":"koriebruh","description":"A Spring Boot-based microservices architecture featuring authentication, patient management, billing, and analytics services with API Gateway, Kafka, gRPC, and PostgreSQL — all containerized using Docker Compose","archived":false,"fork":false,"pushed_at":"2025-07-12T18:22:21.000Z","size":480,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-12T20:38:50.303Z","etag":null,"topics":["docker-compose","hibernate-jpa","mock","postgresql","spring-boot","springcloudgateway","springsecurity-jwt"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koriebruh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-30T17:24:34.000Z","updated_at":"2025-07-12T18:58:20.000Z","dependencies_parsed_at":"2025-07-12T20:53:20.486Z","dependency_job_id":null,"html_url":"https://github.com/koriebruh/spring-services","commit_stats":null,"previous_names":["koriebruh/spring-services"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/koriebruh/spring-services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koriebruh%2Fspring-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koriebruh%2Fspring-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koriebruh%2Fspring-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koriebruh%2Fspring-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koriebruh","download_url":"https://codeload.github.com/koriebruh/spring-services/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koriebruh%2Fspring-services/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268655152,"owners_count":24285128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","hibernate-jpa","mock","postgresql","spring-boot","springcloudgateway","springsecurity-jwt"],"created_at":"2025-08-04T05:39:28.654Z","updated_at":"2026-04-20T09:03:00.726Z","avatar_url":"https://github.com/koriebruh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Microservice Architecture Overview\n\nThis project demonstrates a microservices-based architecture using Spring Boot, Kafka, PostgreSQL, gRPC, and Docker. Each service is containerized and communicates via REST, gRPC, or Kafka events.\n\n---\n\n## 📌 Architecture Flow\n\nThe following diagram illustrates the communication flow between services:\n\n![Microservice Flow](./spring-microservice-flow.png)\n\n\u003e Ensure the image `spring-microservice-flow.png` is located at the root of the repository or adjust the path if needed.\n\n---\n\n## 🧩 Microservices Overview\n\n### 🌐 API Gateway\n- **Spring Cloud Gateway** – Entry point (`http://localhost:3000`)\n- Routes requests to Auth, Patient, and Billing services\n- Validates JWT tokens from Auth Service\n\n### 🔐 Auth Service\n- Handles user authentication: `/auth/login`, `/auth/register`\n- Issues JWTs and verifies them for the gateway\n- Connected to a dedicated PostgreSQL instance (`postgres-auth-service`)\n- Runs on `http://localhost:8083`\n\n### 🧍 Patient Service\n- Exposes patient-related endpoints (`http://localhost:8080`, `http://localhost:5555`)\n- Communicates with Billing via gRPC\n- Publishes patient-related events to Kafka\n\n### 💰 Billing Service\n- gRPC service running at `http://localhost:8081` and `http://localhost:9091`\n- Responds to RPC requests from Patient Service\n\n### 📊 Analytics Service\n- Kafka consumer service\n- Listens to patient events for analytical processing\n- Available at `http://localhost:8082`\n\n### 📬 Kafka\n- Event broker at `http://localhost:9092`\n- Used for asynchronous event streaming between services\n\n### 🔔 Notification Service (Coming Soon)\n\u003e This service will be integrated in the future to handle event-based notifications (e.g., email, SMS, push alerts).\n\n---\n\n## 🐳 Running with Docker Compose\n\nThis project includes a `docker-compose.yml` file to orchestrate all services.  \nTo start the full environment, run:\n\n```bash\ndocker-compose up -d\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoriebruh%2Fspring-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoriebruh%2Fspring-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoriebruh%2Fspring-services/lists"}