{"id":26948532,"url":"https://github.com/pramithamj/ms-petclinic","last_synced_at":"2026-04-07T08:32:39.472Z","repository":{"id":281475347,"uuid":"944115325","full_name":"PramithaMJ/ms-petclinic","owner":"PramithaMJ","description":"Microservice Pet Clinic is a fully distributed, cloud-native application designed to demonstrate the power of microservices architecture using multiple technologies","archived":false,"fork":false,"pushed_at":"2025-03-20T12:18:40.000Z","size":5006,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T18:41:50.864Z","etag":null,"topics":["golang","java","microservice","nodejs","python"],"latest_commit_sha":null,"homepage":"https://pramithamj.github.io/ms-petclinic/","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/PramithaMJ.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-06T20:10:23.000Z","updated_at":"2025-03-19T09:56:56.000Z","dependencies_parsed_at":"2025-06-25T21:41:42.621Z","dependency_job_id":null,"html_url":"https://github.com/PramithaMJ/ms-petclinic","commit_stats":null,"previous_names":["pramithamj/ms-petclinic"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/PramithaMJ/ms-petclinic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PramithaMJ%2Fms-petclinic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PramithaMJ%2Fms-petclinic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PramithaMJ%2Fms-petclinic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PramithaMJ%2Fms-petclinic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PramithaMJ","download_url":"https://codeload.github.com/PramithaMJ/ms-petclinic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PramithaMJ%2Fms-petclinic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["golang","java","microservice","nodejs","python"],"created_at":"2025-04-02T21:19:27.274Z","updated_at":"2026-04-07T08:32:39.446Z","avatar_url":"https://github.com/PramithaMJ.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microservice Pet Clinic\nMicroservice Pet Clinic is a fully distributed, cloud-native application designed to demonstrate the power of microservices architecture using multiple technologies like Java, Golang, Node.js, and Python. It follows best practices for service discovery, API management, monitoring, tracing, authentication, and CI/CD.\n\n## Build Status\n[![Build Status Check](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/build-check.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/build-check.yml)\n[![Java Services CI](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/java-services.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/java-services.yml)\n[![Go Services CI](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/go-services.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/go-services.yml)\n[![Node.js Services CI](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/node-services.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/node-services.yml)\n[![Python application](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/python-app.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/python-app.yml)\n[![CodeQL](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/github-code-scanning/codeql)\n[![Deploy Jekyll with GitHub Pages dependencies preinstalled](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/jekyll-gh-pages.yml/badge.svg)](https://github.com/PramithaMJ/ms-petclinic/actions/workflows/jekyll-gh-pages.yml)\n\n## 📌 Features\n- **Microservices Architecture**: Independently deployed services\n- **Service Discovery**: Eureka / Consul for dynamic service registration\n- **API Gateway**: Kong / Traefik for centralized request handling\n- **Configuration Management**: Spring Cloud Config / HashiCorp Vault\n- **Asynchronous Messaging**: Kafka / RabbitMQ for event-driven architecture\n- **Authentication \u0026 Authorization**: Keycloak with OAuth2 \u0026 JWT\n- **Monitoring \u0026 Tracing**: Prometheus, Grafana, Zipkin / Jaeger\n- **Centralized Logging**: ELK Stack (Elasticsearch, Logstash, Kibana)\n- **CI/CD Pipeline**: GitHub Actions, Jenkins, Kubernetes, Helm\n- **Containerization \u0026 Orchestration**: Docker, Kubernetes, Helm, ArgoCD\n\n## 🏗 Architecture\n```plaintext\n                      +------------------------------------------------+\n                      |               API Gateway (Kong)              |\n                      |   - Handles Routing, Authentication (JWT)     |\n                      |   - Rate Limiting, Load Balancing             |\n                      +--------------------+---------------------------+\n                                           |\n      +---------------------+--------------+-----------------------+\n      |                     |                                      |\n      v                     v                                      v\n+------------+     +----------------+                    +------------------+\n| Service Reg|\u003c--\u003e | Config Server  |                    | Monitoring \u0026 Logs|\n| Discovery  |     | (Spring Config)|                    | Prometheus + ELK |\n| Eureka/Consul|   | HashiCorp Vault|                    | Zipkin / Jaeger  |\n+------------+     +----------------+                    +------------------+\n      |                     |                                      |\n      |                     v                                      |\n      |             +------------------+                           |\n      |             |  Auth Service     |   \u003c-----\u003e   Keycloak     |\n      |             |  (Java + Spring)  |   (OAuth2 + JWT)         |\n      |             +------------------+                           |\n      |                     |                                      |\n+----------------+     +----------------+    +------------------+   +----------------+\n|  Pet Service  |\u003c--\u003e |  Owner Service  |\u003c-\u003e |  Visit Service   |\u003c-\u003e| Billing Service |\n|  Golang + Gin |     | Python + FastAPI|    | Java + Spring    |   | Golang + Fiber  |\n+----------------+     +----------------+    +------------------+   +----------------+\n      |                     |                                      |\n      |                     v                                      |\n      |             +-------------------+                          |\n      |             | Event Bus (Kafka) |                          |\n      |             |  Async Messaging  |                          |\n      |             +-------------------+                          |\n      |                     |                                      |\n      |                     v                                      |\n      |            +----------------------+                        |\n      |            | Notification Service |                        |\n      |            |  (Python + Celery)   |                        |\n      |            +----------------------+                        |\n      |                                                              |\n      +--------------------------------------------------------------+\n                                      |\n        +--------------------------------------------------+\n        |  CI/CD: GitHub Actions + Jenkins + Kubernetes    |\n        |  Docker, Helm, ArgoCD for Automated Deployment  |\n        +--------------------------------------------------+\n```\n\n## 📂 Repository Structure\n```plaintext\nmicroservice-pet-clinic/\n│── api-gateway/       → Kong / Traefik\n│── service-registry/  → Eureka / Consul\n│── config-server/     → Spring Cloud Config\n│── services/\n│   ├── auth-service/      → Java (Spring Boot)\n│   ├── pet-service/       → Golang (Gin)\n│   ├── owner-service/     → Python (FastAPI)\n│   ├── vet-service/       → Node.js (Express)\n│   ├── visit-service/     → Java (Spring Boot)\n│   ├── billing-service/   → Golang (Fiber)\n│   ├── notification-service/ → Python (Celery)\n│── event-streaming/ → Kafka / RabbitMQ\n│── monitoring/      → Prometheus + Grafana\n│── tracing/         → Zipkin / Jaeger\n│── logging/         → ELK Stack (Elasticsearch, Logstash, Kibana)\n│── k8s/            → Kubernetes manifests\n│── ci-cd/          → GitHub Actions / Jenkins pipelines\n│── README.md\n```\n\n## 🚀 Getting Started\n\n### **1️⃣ Prerequisites**\n- Docker \u0026 Docker Compose\n- Kubernetes \u0026 Helm\n- Java 17, Golang, Node.js, Python\n- PostgreSQL / MongoDB\n- Kafka / RabbitMQ\n\n### **2️⃣ Running Services Locally**\n#### **With Docker Compose**\n```sh\ndocker-compose up -d\n```\n\n#### **With Kubernetes**\n```sh\nkubectl apply -f k8s/\n```\n\n### **3️⃣ API Endpoints**\n| **Service** | **Endpoint** | **Method** |\n|------------|-------------|------------|\n| **Auth Service** | `/auth/login` | POST |\n| **Pet Service** | `/pets` | GET, POST |\n| **Owner Service** | `/owners` | GET, POST |\n| **Vet Service** | `/vets` | GET, POST |\n| **Visit Service** | `/visits` | GET, POST |\n| **Billing Service** | `/billing` | POST |\n\n## 🛠 CI/CD Pipeline\n1. **GitHub Actions** - Code build \u0026 testing\n2. **Jenkins** - Continuous Integration\n3. **ArgoCD** - Kubernetes GitOps deployment\n4. **Helm** - Kubernetes package manager\n\n## 🔍 Monitoring \u0026 Logging\n| **Component** | **Purpose** |\n|------------|------------|\n| **Zipkin / Jaeger** | Distributed Tracing |\n| **Prometheus + Grafana** | Metrics \u0026 Alerts |\n| **ELK Stack (Elasticsearch, Logstash, Kibana)** | Centralized Logging |\n\n## 🤝 Contributing\nFeel free to contribute to this project! Open an issue or create a pull request.\n\n## 📜 License\nMIT License - Feel free to use and modify this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpramithamj%2Fms-petclinic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpramithamj%2Fms-petclinic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpramithamj%2Fms-petclinic/lists"}