{"id":16169572,"url":"https://github.com/jabrena/101-docker","last_synced_at":"2026-02-15T18:33:01.510Z","repository":{"id":62267547,"uuid":"473573637","full_name":"jabrena/101-docker","owner":"jabrena","description":"A microservice architecture to be evaluated with Spring Boot applications \u0026 GraalVM native capabilities","archived":false,"fork":false,"pushed_at":"2022-12-14T21:35:02.000Z","size":22159,"stargazers_count":3,"open_issues_count":24,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-19T22:31:55.415Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jabrena.github.io/101-docker/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jabrena.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}},"created_at":"2022-03-24T11:18:33.000Z","updated_at":"2025-02-19T17:40:17.000Z","dependencies_parsed_at":"2023-01-29T01:15:54.811Z","dependency_job_id":null,"html_url":"https://github.com/jabrena/101-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jabrena/101-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabrena%2F101-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabrena%2F101-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabrena%2F101-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabrena%2F101-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jabrena","download_url":"https://codeload.github.com/jabrena/101-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabrena%2F101-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: 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":[],"created_at":"2024-10-10T03:15:17.829Z","updated_at":"2026-02-15T18:33:01.489Z","avatar_url":"https://github.com/jabrena.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 101-docker\n\n[![Poliglot Docker Builds](https://github.com/jabrena/101-docker/actions/workflows/poliglot_docker_builds.yaml/badge.svg)](https://github.com/jabrena/101-docker/actions/workflows/poliglot_docker_builds.yaml)\n[![Usecase 1](https://github.com/jabrena/101-docker/actions/workflows/usecase1_build.yaml/badge.svg)](https://github.com/jabrena/101-docker/actions/workflows/usecase1_build.yaml)\n[![Usecase 2](https://github.com/jabrena/101-docker/actions/workflows/usecase2_build.yaml/badge.svg)](https://github.com/jabrena/101-docker/actions/workflows/usecase2_build.yaml)\n\n## Motivation\n \nUnderstand the `JVM` \u0026 Non JVM ecosystem comparing:\n\n- Container application running with the JVM support\n- Container application running with GraalVM native support\n- Container application running with WASM support\n\nAnd reviewing the scenarios in terms of `CPU` \u0026 `Memory` for a financial point of view in the middle term.\n\n## A microservice architecture to be evaluated with Spring Boot applications \u0026 GraalVM native capabilities\n\nhttps://spring.io/microservices\n\n\u003e Microservices are a modern approach to software whereby application code\nis delivered in small, manageable pieces, independent of others.\n\n![](./docs/spring-microservice-diagram.png)\n\n### Usecase 1: Interservice communication in microservices\n\n- [x] HTTP Rest communications (A \u003c- B)\n- [ ] Database transactions\n\n### Usecase 2: Observability\n\n- [ ] With Prometheus, Prometheus \u0026 Zipkin\n- [ ] With Graphana, Tempo \u0026 Loki\n- [ ] With Elastic stack\n\n### Usecase 3: Event Driven\n\n- [ ] Event driven communications (A -\u003e Event Store)\n\n### Usecase 4: Security\n\n- [ ] Security patterns\n\n## Issues detected\n\nSome notes from the tests using Spring Boot 3 native features.\n\n- [ ] `musl` support is not implemented with buildpacks\n- [ ] `upx` support is not possible in OSX\n- [ ] [Buildpacks has a different behaviour (size) between OSX \u0026 Ubuntu in terms of sizes of native apps](https://github.com/jabrena/101-docker/issues/57#issuecomment-1323910704)\n- [ ] [`--static` is not available for OSX](https://github.com/jabrena/101-docker/issues/57#issuecomment-1323893624) raised when native application A call endpoint B using http\n\n## References\n\n- https://github.com/graalvm/graalvm-demos\n- https://spring.io/blog/2022/09/26/native-support-in-spring-boot-3-0-0-m5\n- https://github.com/oktadev/native-java-examples\n- https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/\n- https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/\n- https://graalvm.github.io/native-build-tools/latest/\n- https://graalvm.github.io/native-build-tools/latest/maven-plugin.html\n- https://start.spring.io/\n- https://github.com/wagoodman/dive\n- https://spring.io/guides/gs/spring-boot-docker/\n- https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/\n- https://console.cloud.google.com/gcr/images/paketo-buildpacks/GLOBAL/bellsoft-liberica\n- https://github.com/paketo-buildpacks/bellsoft-liberica\n- https://github.com/paketo-buildpacks/java-native-image\n- https://spring.io/microservices\n- http://more.musl.cc/\n- https://docs.docker.com/compose/\n- https://www.docker.com/blog/docker-wasm-technical-preview/\n- https://github.com/actions/upload-artifact\n\n## Previous talks\n\n- https://github.com/jabrena/crossing-the-chasm-native-images\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabrena%2F101-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjabrena%2F101-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabrena%2F101-docker/lists"}