{"id":16088026,"url":"https://github.com/ruslanys/sample-spring-boot-netty","last_synced_at":"2025-07-19T06:07:00.450Z","repository":{"id":211066522,"uuid":"121790452","full_name":"ruslanys/sample-spring-boot-netty","owner":"ruslanys","description":"High-performance tech stack based on Spring Boot and Netty","archived":false,"fork":false,"pushed_at":"2019-05-13T20:21:21.000Z","size":81,"stargazers_count":47,"open_issues_count":0,"forks_count":20,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T08:35:58.024Z","etag":null,"topics":["high-performance","java","kotlin","netty","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/ruslanys.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-02-16T19:16:14.000Z","updated_at":"2024-11-21T17:15:03.000Z","dependencies_parsed_at":"2023-12-06T10:54:42.972Z","dependency_job_id":"ac355345-930b-4a08-ba25-2108d162e8eb","html_url":"https://github.com/ruslanys/sample-spring-boot-netty","commit_stats":null,"previous_names":["ruslanys/sample-spring-boot-netty"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ruslanys/sample-spring-boot-netty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanys%2Fsample-spring-boot-netty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanys%2Fsample-spring-boot-netty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanys%2Fsample-spring-boot-netty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanys%2Fsample-spring-boot-netty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruslanys","download_url":"https://codeload.github.com/ruslanys/sample-spring-boot-netty/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslanys%2Fsample-spring-boot-netty/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265896138,"owners_count":23845429,"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":["high-performance","java","kotlin","netty","spring-boot"],"created_at":"2024-10-09T13:34:43.473Z","updated_at":"2025-07-19T06:07:00.423Z","avatar_url":"https://github.com/ruslanys.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot + Netty\n\n# Description\n\nThe repository is a **high**-performance tech stack based on [Spring Boot](https://projects.spring.io/spring-boot/) \nthat using [Netty](https://netty.io/) instead of Spring Web MVC / Spring Webflux.\n\n\n## Performance Comparison\n\n### Environment\n\nKVM, Ubuntu 16.04, 2048 MB RAM, 2 CPU\n\nRun: `$ java -Xmx1024M -server -jar application.jar`\n\nTest: `$ wrk -t12 -c400 -d30s --latency http://host/api/user/current`\n\n### Tomcat\n\n```\nRunning 30s test @ http://host/api/user/current\n  12 threads and 400 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    54.66ms   64.39ms 996.17ms   92.02%\n    Req/Sec   744.51    140.25     3.08k    85.77%\n  Latency Distribution\n     50%   42.26ms\n     75%   65.72ms\n     90%  105.89ms\n     99%  275.51ms\n  265240 requests in 30.06s, 53.93MB read\nRequests/sec:   8822.80\nTransfer/sec:      1.79MB\n```\n\n\n### Undertow\n\n```\nRunning 30s test @ http://host/api/user/current\n  12 threads and 400 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    66.80ms  121.30ms   1.94s    91.37%\n    Req/Sec     0.87k   327.28     6.07k    91.60%\n  Latency Distribution\n     50%   27.18ms\n     75%   77.43ms\n     90%  172.98ms\n     99%  505.67ms\n  303177 requests in 30.04s, 51.47MB read\n  Socket errors: connect 0, read 0, write 0, timeout 148\nRequests/sec:  10090.98\nTransfer/sec:      1.71MB\n```\n\n### Spring Reactive - Webflux\n\n```\nRunning 30s test @ http://host/api/user/current\n  12 threads and 400 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    64.22ms  101.43ms   2.00s    89.74%\n    Req/Sec     0.88k   332.80     7.93k    93.13%\n  Latency Distribution\n     50%   27.41ms\n     75%   77.47ms\n     90%  168.43ms\n     99%  432.62ms\n  306800 requests in 30.10s, 52.08MB read\n  Socket errors: connect 0, read 0, write 0, timeout 36\nRequests/sec:  10193.27\nTransfer/sec:      1.73MB\n```\n\n\n### This\n\n```\nRunning 30s test @ http://host/api/user/current\n  12 threads and 400 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    25.38ms   41.24ms 460.39ms   90.51%\n    Req/Sec     2.38k   325.27     4.46k    88.33%\n  Latency Distribution\n     50%   12.09ms\n     75%   18.72ms\n     90%   63.93ms\n     99%  215.51ms\n  845952 requests in 30.05s, 129.08MB read\nRequests/sec:  28151.60\nTransfer/sec:      4.30MB\n```\n\n### Overview\n\n![Diagram](docs/performance-diagram.png)\n\nSo, this stack in 2.8 times faster than Undertow and Webflux and in 3.18 times faster than Tomcat.\n\nThe difference in rates becomes higher with more performance hardware.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslanys%2Fsample-spring-boot-netty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruslanys%2Fsample-spring-boot-netty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslanys%2Fsample-spring-boot-netty/lists"}