{"id":19178412,"url":"https://github.com/starichkov/quarkus-micro-service","last_synced_at":"2026-04-09T07:10:13.580Z","repository":{"id":48090244,"uuid":"392248132","full_name":"starichkov/quarkus-micro-service","owner":"starichkov","description":"Quarkus framework based example of the micro-service with HTTP endpoints (often called as REST) and multiple additional features.","archived":false,"fork":false,"pushed_at":"2025-02-22T11:49:53.000Z","size":258,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T12:28:26.972Z","etag":null,"topics":["docker","docker-compose","java","microservices","quarkus","quarkusio","redis"],"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/starichkov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2021-08-03T08:38:04.000Z","updated_at":"2025-02-22T11:49:56.000Z","dependencies_parsed_at":"2023-02-09T23:00:38.588Z","dependency_job_id":"6e7bc2d2-0c57-402e-9b3c-2943ed864a07","html_url":"https://github.com/starichkov/quarkus-micro-service","commit_stats":null,"previous_names":["starichkov/quarkus-micro-service"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starichkov%2Fquarkus-micro-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starichkov%2Fquarkus-micro-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starichkov%2Fquarkus-micro-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starichkov%2Fquarkus-micro-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starichkov","download_url":"https://codeload.github.com/starichkov/quarkus-micro-service/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240255303,"owners_count":19772594,"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","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","docker-compose","java","microservices","quarkus","quarkusio","redis"],"created_at":"2024-11-09T10:39:19.328Z","updated_at":"2026-04-09T07:10:13.558Z","avatar_url":"https://github.com/starichkov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/starichkov/quarkus-micro-service/maven.yml?style=for-the-badge)](https://github.com/starichkov/quarkus-micro-service/actions/workflows/maven.yml)\n[![codecov](https://img.shields.io/codecov/c/github/starichkov/quarkus-micro-service?style=for-the-badge)](https://codecov.io/gh/starichkov/quarkus-micro-service)\n[![GitHub license](https://img.shields.io/github/license/starichkov/quarkus-micro-service?style=for-the-badge)](https://github.com/starichkov/quarkus-micro-service/blob/main/LICENSE.md)\n\nQuarkus microservice\n=\nThis project is a Quarkus framework based, 'ready-to-play' micro-service.\n\n| Name           | Version |\n|----------------|---------|\n| Java           | 25      |\n| Maven          | 3.8.1+  |\n| Quarkus        | 3.33.1  |\n| PostgreSQL     | 17.6    |\n| Valkey         | 7.2.10  |\n| Testcontainers | 2.0.x   |\n\n## What's inside?\n\nStarting from Quarkus `3.20.x` this project `main` branch will be using only LTS version.\n\nSeparate `edge` branch will be using latest versions, and when it will reach next LTS one it will be merged to `main`.\n\n### Quarkus extensions-based features\n\n- REST controller with multiple endpoints ([official guide](https://quarkus.io/guides/rest-json))\n- JSON serialisation using Jackson\n- YAML-based configuration ([official guide](https://quarkus.io/guides/config-yaml))\n- Database with Flyway migration support ([official guide](https://quarkus.io/guides/flyway))\n- H2 database for test scope\n- Health check endpoints ([official guide](https://quarkus.io/guides/smallrye-health))\n- Scheduled tasks configured to use Unix [Crontab](https://crontab.guru/) syntax ([official guide](https://quarkus.io/guides/scheduler-reference))\n- Redis/Valkey client with health indicator ([official guide](https://quarkus.io/guides/redis))\n- OpenTelemetry support ([official guide](https://quarkus.io/guides/opentelemetry))\n- EventBus (alternative to Spring's ApplicationEvent system, [official guide](https://quarkus.io/guides/reactive-event-bus))\n- Qute templating engine (special-for-Quarkus alternative to Freemarker or Mustache engines, [official guide](https://quarkus.io/guides/qute-reference))\n\nThis service contains multiple features which requires some specific servers to be available and resolvable:\n\n| Feature       | Requirement   | How to run in Docker                       | How to disable                     |\n|---------------|---------------|--------------------------------------------|------------------------------------|\n| Database      | PostgreSQL    | [postgres.md](/documentation/postgres.md)  | - required -                       |\n| Valkey        | Valkey server | [valkey.md](/documentation/valkey.md)      |                                    |\n| OpenTelemetry | Jaeger server | [jaeger.md](/documentation/jaeger.md)      |                                    |\n| Metrics       | Prometheus    | [metrics.md](/documentation/prometheus.md) | `quarkus.micrometer.enabled=false` |\n\n#### Health check\n\nThese endpoints are available via following URLs:\n\n```\nGET http://localhost:8080/q/health\nGET http://localhost:8080/q/health/live\nGET http://localhost:8080/q/health/ready\n```\n\nAlso, there is Health UI provided too:\n\n```\nhttp://localhost:8080/q/health-ui/\n```\n\n### Docker\n\nThis service contains two Dockerfile-s, [more details](/documentation/docker.md) on the separate page.\n\n### 3rd party libraries features\n\n- Lombok + Mapstruct (with Mapstruct's CDI mode)\n\n## What's the plan?\n\nList of features I am planning to add:\n\n- Async controller endpoints\n- Hibernate ORM with Panache ([official guide](https://quarkus.io/guides/hibernate-orm-panache))\n- WebSocket support\n- AMPQ support\n- Migrate to multi-module Maven project\n- Native Build with GraalVM\n\n## Native executable with GraalVM\n\n### Build\n\n```shell\nmvn clean verify -Dnative\n```\n\n#### Dependencies\n\n```shell\nsudo apt install zlib1g-dev\n```\n\n### Run\n\n```shell\nexport DB_USERNAME=...\nexport DB_PASSWORD=...\n./target/quarkus-micro-service-1.0.0-runner\n```\n\n## Limitations found\n\nQuarkus does not support/provide:\n\n- Redis as a persistence layer for caching extension. It means you can't use Quarkus `@Cache**` annotations with underlying Redis.\n  And Quarkus itself will not allow to implement such layer easily - caching extension does not accept custom `CacheManager` or cache types.\n\n- AOP (AspectJ) as Spring does. Partially similar behavior could be achieved via Interceptors, but it is still quite a different thing...\n\n## License\n\nSee the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarichkov%2Fquarkus-micro-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarichkov%2Fquarkus-micro-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarichkov%2Fquarkus-micro-service/lists"}