{"id":26060552,"url":"https://github.com/aguirre-jes/payments-api","last_synced_at":"2026-04-17T23:05:21.914Z","repository":{"id":279720772,"uuid":"939720986","full_name":"aguirre-jes/payments-api","owner":"aguirre-jes","description":"A Helidon MP application for managing payments, utilizing a hexagonal architecture and clean architecture principles. This project includes RESTful APIs, domain-driven design.","archived":false,"fork":false,"pushed_at":"2026-03-07T02:14:58.000Z","size":207,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-07T08:55:05.423Z","etag":null,"topics":["clean-architecture","helidon","hexagonal-architecture","java","maven","rest-api"],"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/aguirre-jes.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-27T01:59:33.000Z","updated_at":"2026-03-07T02:15:01.000Z","dependencies_parsed_at":"2025-02-27T03:30:05.790Z","dependency_job_id":"990f0697-32e6-4b93-b78f-0652ec1a3828","html_url":"https://github.com/aguirre-jes/payments-api","commit_stats":null,"previous_names":["aguirre-jes/payments-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aguirre-jes/payments-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aguirre-jes%2Fpayments-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aguirre-jes%2Fpayments-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aguirre-jes%2Fpayments-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aguirre-jes%2Fpayments-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aguirre-jes","download_url":"https://codeload.github.com/aguirre-jes/payments-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aguirre-jes%2Fpayments-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31949435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["clean-architecture","helidon","hexagonal-architecture","java","maven","rest-api"],"created_at":"2025-03-08T14:08:40.569Z","updated_at":"2026-04-17T23:05:21.908Z","avatar_url":"https://github.com/aguirre-jes.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Payments API MP\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aguirre-jes_payments-api\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=aguirre-jes_payments-api) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=aguirre-jes_payments-api\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=aguirre-jes_payments-api) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=aguirre-jes_payments-api\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=aguirre-jes_payments-api) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=aguirre-jes_payments-api\u0026metric=ncloc)](https://sonarcloud.io/summary/new_code?id=aguirre-jes_payments-api)\n\n## Overview\n\nA Helidon MP application for managing payments, utilizing a hexagonal architecture and clean architecture principles. This project includes RESTful APIs, domain-driven design.\n\n[![Helidon Payments API MP](https://mermaid.ink/img/pako:eNqllE2P2jAQhv-K5b20UqAkAQJRtVKCqYSEtAgWVWrTg0kcsOrYke20yyL-e50PAqHd9lAfosx45vGbmYlPMBYJgT7cS5wfwDOKODBLFbvaEcH5iyaSYwY-C8mSCNYBd0FBnjMaY00Fv424i0Iiw5SDJT4SeR9WLrT8GsGwUJQTpcCca6opUR938sPjTEgClmJP48pcF4yoCH7rMghPuo6utVqsDH8laYblEayE1DX73YLnhX5vcKDX6xkV3bTNU5m2IbHgyV3iU6Hfyuxoub6tAnSjIUhwbqrb0GaCaykYMw4LrOebZxCsFqqhP5byrxwjqnJuKt5VXJe4JrlQVAtpymiBtpMX7J8EbheGt1VEggU34SmOmw602TNGCdeqlRWgG1kBqpwoNBSENd5hdZ-_IfIHjW_a15aqfsYMK4VICpJ6XFLKmP_ghMOZN7eUqdB34j-k1WrM3k-a6IPv5C9WLJiQl-07Xl42rsGNxt48DP-Ks_-Bw02pG-JkEgyQ-19EcilRTQw_IXs-aolutd4k1tu_FdIMZVPIW6eZJascoaoknY0AWWUTLx93u7ddWChsRULL3Bk0gb6WBbFgRqQ5xJjwVOZEUB9IRiLom9eEpLhguvzlzyYtx_yLENklU4pif4B-ipkyVpEnWBNEsbk0stYrzYwQORMF19CfuBUD-if4An1n4vS96XA0sB3X88YTx4JH6NveoO96w-nYHrr2aGiPnLMFX6tTB_2RCbfHrjue2t7E85zzL_egiMs?type=png)](https://mermaid.live/edit#pako:eNqllE2P2jAQhv-K5b20UqAkAQJRtVKCqYSEtAgWVWrTg0kcsOrYke20yyL-e50PAqHd9lAfosx45vGbmYlPMBYJgT7cS5wfwDOKODBLFbvaEcH5iyaSYwY-C8mSCNYBd0FBnjMaY00Fv424i0Iiw5SDJT4SeR9WLrT8GsGwUJQTpcCca6opUR938sPjTEgClmJP48pcF4yoCH7rMghPuo6utVqsDH8laYblEayE1DX73YLnhX5vcKDX6xkV3bTNU5m2IbHgyV3iU6Hfyuxoub6tAnSjIUhwbqrb0GaCaykYMw4LrOebZxCsFqqhP5byrxwjqnJuKt5VXJe4JrlQVAtpymiBtpMX7J8EbheGt1VEggU34SmOmw602TNGCdeqlRWgG1kBqpwoNBSENd5hdZ-_IfIHjW_a15aqfsYMK4VICpJ6XFLKmP_ghMOZN7eUqdB34j-k1WrM3k-a6IPv5C9WLJiQl-07Xl42rsGNxt48DP-Ks_-Bw02pG-JkEgyQ-19EcilRTQw_IXs-aolutd4k1tu_FdIMZVPIW6eZJascoaoknY0AWWUTLx93u7ddWChsRULL3Bk0gb6WBbFgRqQ5xJjwVOZEUB9IRiLom9eEpLhguvzlzyYtx_yLENklU4pif4B-ipkyVpEnWBNEsbk0stYrzYwQORMF19CfuBUD-if4An1n4vS96XA0sB3X88YTx4JH6NveoO96w-nYHrr2aGiPnLMFX6tTB_2RCbfHrjue2t7E85zzL_egiMs)\n\n## Build and run\n\nWith JDK21+\n\n```bash\nmvn package\njava -jar target/payments-api-mp.jar\n```\n\n## Try health\n\n```bash\ncurl -s -X GET http://localhost:8080/health\n{\"outcome\":\"UP\",...\n\n```\n\n## Building a Native Image\n\nThe generation of native binaries requires an installation of GraalVM 21.1.0+.\n\nYou can build a native binary using Maven as follows:\n\n```bash\nmvn -Pnative-image install -DskipTests\n```\n\nThe generation of the executable binary may take a few minutes to complete depending on\nyour hardware and operating system. When completed, the executable file will be available\nunder the `target` directory and be named after the artifact ID you have chosen during the\nproject generation phase.\n\n## Try metrics\n\n```bash\n# Prometheus Format\ncurl -s -X GET http://localhost:8080/metrics\n# TYPE base:gc_g1_young_generation_count gauge\n. . .\n\n# JSON Format\ncurl -H 'Accept: application/json' -X GET http://localhost:8080/metrics\n{\"base\":...\n. . .\n```\n\n### Database Setup\n\nStart your database before running this example.\n\nExample docker commands to start databases in temporary containers:\n\nOracle:\n\n```bash\ndocker run --rm --name xe -p 1521:1521 -p 8888:8080 wnameless/oracle-xe-11g-r2\n```\n\nFor details on an Oracle Docker image, see [Oracle Images Container](https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance)\n\n## Building the Docker Image\n\n```bash\ndocker build -t payments-api-mp .\n```\n\n## Running the Docker Image\n\n```bash\ndocker run --rm -p 8080:8080 payments-api-mp:latest\n```\n\nExercise the application as described above.\n\n## Run the application in Kubernetes\n\nIf you don’t have access to a Kubernetes cluster, you can [install one](https://helidon.io/docs/latest/#/about/kubernetes) on your desktop.\n\n### Verify connectivity to cluster\n\n```bash\nkubectl cluster-info                        # Verify which cluster\nkubectl get pods                            # Verify connectivity to cluster\n```\n\n### Deploy the application to Kubernetes\n\n```bash\nkubectl create -f app.yaml                              # Deploy application\nkubectl get pods                                        # Wait for quickstart pod to be RUNNING\nkubectl get service  payments-api-mp                     # Get service info\nkubectl port-forward service/payments-api-mp 8081:8080   # Forward service port to 8081\n```\n\nYou can now exercise the application as you did before but use the port number 8081.\n\nAfter you’re done, cleanup.\n\n```bash\nkubectl delete -f app.yaml\n```\n\n## Building a Custom Runtime Image\n\nBuild the custom runtime image using the jlink image profile:\n\n```bash\nmvn package -Pjlink-image\n```\n\nThis uses the helidon-maven-plugin to perform the custom image generation.\nAfter the build completes it will report some statistics about the build including the reduction in image size.\n\nThe target/payments-api-mp-jri directory is a self contained custom image of your application. It contains your application,\nits runtime dependencies and the JDK modules it depends on. You can start your application using the provide start script:\n\n```bash\n./target/payments-api-mp-jri/bin/start\n```\n\nClass Data Sharing (CDS) Archive\nAlso included in the custom image is a Class Data Sharing (CDS) archive that improves your application’s startup\nperformance and in-memory footprint. You can learn more about Class Data Sharing in the JDK documentation.\n\nThe CDS archive increases your image size to get these performance optimizations. It can be of significant size (tens of MB).\nThe size of the CDS archive is reported at the end of the build output.\n\nIf you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS\narchive by executing your build like this:\n\n```bash\nmvn package -Pjlink-image -Djlink.image.addClassDataSharingArchive=false\n```\n\nFor more information on available configuration options see the helidon-maven-plugin documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faguirre-jes%2Fpayments-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faguirre-jes%2Fpayments-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faguirre-jes%2Fpayments-api/lists"}