{"id":28545238,"url":"https://github.com/tofazzaltopu/remittance-processing-systems-micro-service","last_synced_at":"2025-07-22T21:34:14.645Z","repository":{"id":288920107,"uuid":"968032171","full_name":"TofazzalTopu/remittance-processing-systems-micro-service","owner":"TofazzalTopu","description":"Design microservice architecture with Java, spring boot, spring security, JWT, Redis, Kafka, spring cloud (Eureka, API Gateway, Circuit Breaker, Load Balancer, FeignClient, Config Server), Oracle.","archived":false,"fork":false,"pushed_at":"2025-06-10T19:33:32.000Z","size":354,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-07T04:41:35.410Z","etag":null,"topics":["docker","java","junit","jwt-authentication","kafka","maven","oracle","redis-cache","refresh-token","spring-aop","spring-boot","spring-cloud-config","spring-cloud-eureka","spring-cloud-gateway","spring-cloud-microservice","spring-cloud-netflix","spring-cloud-sleuth","spring-cloud-sleuth-zipkin","spring-data-jpa","spring-security-jwt"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TofazzalTopu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-04-17T11:49:44.000Z","updated_at":"2025-06-10T19:33:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ad9a159-5ce2-4663-b867-383d538a4fde","html_url":"https://github.com/TofazzalTopu/remittance-processing-systems-micro-service","commit_stats":null,"previous_names":["tofazzaltopu/instant-cash-micro-service","tofazzaltopu/remittance-processing-systems-micro-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TofazzalTopu/remittance-processing-systems-micro-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TofazzalTopu%2Fremittance-processing-systems-micro-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TofazzalTopu%2Fremittance-processing-systems-micro-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TofazzalTopu%2Fremittance-processing-systems-micro-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TofazzalTopu%2Fremittance-processing-systems-micro-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TofazzalTopu","download_url":"https://codeload.github.com/TofazzalTopu/remittance-processing-systems-micro-service/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TofazzalTopu%2Fremittance-processing-systems-micro-service/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266578680,"owners_count":23951150,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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","java","junit","jwt-authentication","kafka","maven","oracle","redis-cache","refresh-token","spring-aop","spring-boot","spring-cloud-config","spring-cloud-eureka","spring-cloud-gateway","spring-cloud-microservice","spring-cloud-netflix","spring-cloud-sleuth","spring-cloud-sleuth-zipkin","spring-data-jpa","spring-security-jwt"],"created_at":"2025-06-09T23:06:55.207Z","updated_at":"2025-07-22T21:34:14.636Z","avatar_url":"https://github.com/TofazzalTopu.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Instant Cash Micro-service\n\n\n1. **Overview**\n    - This micro-service is designed to integrate with the Instant Cash Exchange House API, providing functionalities\n      for managing transactions, including fetching outstanding transactions, checking transaction status, and\n      confirming transaction statuses.\n    - The service is built using Java and Spring Boot, and it utilizes the Spring Scheduler for periodic task execution.\n    - It includes a properties file for configuration, a controller for handling API requests, and a service for\n      processing the business logic.\n    - The service is designed to be modular and easily extendable, allowing for future enhancements and additional\n      features as needed.\n    - The service is also designed to be robust and handle various error scenarios, ensuring that the system remains\n      stable and reliable even in the face of unexpected issues.\n    - The service includes comprehensive logging and monitoring capabilities, allowing for easy tracking of system\n      performance and identifying potential issues.\n    - The service is designed to be secure, with appropriate authentication and authorization mechanisms in place to\n      protect sensitive data and ensure that only authorized users can access the system.\n    - The service is designed to be scalable, allowing for easy expansion and growth as the needs of the business change\n      over time.\n    - Microservices are built using Spring Boot, which provides a lightweight framework for creating standalone\n      applications.\n    - Each microservice is designed to be independent and self-contained, with its own database and business logic.\n    - Microservices communicate with each other using RESTful APIs or messaging queues (e.g., Kafka).\n    - The microservices architecture allows for easy scaling and deployment of individual services, enabling faster\n      development and deployment cycles.\n\n\n      \n3. **Components / services**\n   - User Service\n   - Eureka Service\n   - Division Service\n   - Department Service\n   - API Gateway Service\n   - Spring Cloud Config\n   - Notification Service\n   - Authentication Service\n   - Instant Cash Exchange House API Service\n   \n   \n\n3. **Technologies Used**\n    - Java\n    - Maven\n    - Kafka\n    - Redis\n    - Oracle\n    - Actuator\n    - JWT Token\n    - Spring Web\n    - Spring AOP\n    - Spring Boot\n    - Spring Cloud\n    - Spring Data JPA\n    - Spring Scheduler\n    - Spring Security\n    - Log4j2 (for logging)\n    - JUnit (for testing)\n    - Jenkins (for CI/CD)\n    - Postman (for API testing)\n    - OPEN API (for API documentation)\n    - Docker (for containerization)\n    - Kubernetes (for orchestration)\n    - Git (for version control)\n    - Prometheus (for monitoring)\n    - Grafana (for visualization)\n    - H2 Database (for testing purposes)\n    - SonarQube (for code quality analysis)\n    - Lombok (for reducing boilerplate code)\n    - MapStruct (for object mapping)\n   \n\n4. **Spring Cloud: for microservices architecture**\n   - Spring Cloud Config: to manage external configurations\n   - Spring Cloud Gateway: for API Gateway\n   - Spring Cloud Sleuth: for distributed tracing\n   - Spring Cloud Bus: for event-driven architecture\n   - Spring Cloud Netflix Eureka: for service discovery\n   - Spring Cloud OpenFeign: for declarative REST client\n   - Spring Cloud Stream: for event-driven microservices\n   - Spring Cloud Kubernetes: for Kubernetes integration\n   - Spring Cloud Circuit Breaker: for circuit breaker pattern\n   - Spring Cloud Load Balancer: for client-side load balancing\n   - Spring Cloud Zipkin: for distributed tracing visualization\n   - Spring Cloud Config Server: for external configuration management\n   - Spring Cloud Consul: for service discovery and configuration management\n   - Spring Cloud Resilience4j: for fault tolerance (Circuit Breaker, Retry, Rate Limiter, TimeLimiter)\n\n5. **Maintain Reliability, Availability, Consistency of the microservices**\n\n  - Circuit Breaker\n  - Load Balancer\n  - Service Discovery\n  - Distributed Tracing\n  - Event-Driven Architecture\n  - Testing\n  - Security\n  - Logging\n  - Error Handling\n  - Configuration Management\n  - Fault Tolerance\n  - Scalability\n  - Modularity\n  - Extensibility\n  - Robustness\n  - Maintainability\n  - Performance\n  - Usability\n  - Interoperability\n  - Portability\n  - Compatibility\n  - Durability\n  - Scalability\n  - Flexibility","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftofazzaltopu%2Fremittance-processing-systems-micro-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftofazzaltopu%2Fremittance-processing-systems-micro-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftofazzaltopu%2Fremittance-processing-systems-micro-service/lists"}