{"id":27247485,"url":"https://github.com/jgabrielfreitas/ktor-hexagonal-benchmark","last_synced_at":"2025-04-10T22:57:48.113Z","repository":{"id":42009641,"uuid":"270493204","full_name":"jgabrielfreitas/ktor-hexagonal-benchmark","owner":"jgabrielfreitas","description":"a experimental ktor application using hexagonal architecture","archived":false,"fork":false,"pushed_at":"2022-08-06T19:19:15.000Z","size":224,"stargazers_count":36,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T22:57:42.875Z","etag":null,"topics":["docker","exposed","hexagonal","hexagonal-architecture","hexagonal-architectures","jetbrains-exposed","kluent","koin","ktor","mysql"],"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/jgabrielfreitas.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":"2020-06-08T02:00:46.000Z","updated_at":"2025-04-03T23:16:53.000Z","dependencies_parsed_at":"2022-08-12T02:20:11.925Z","dependency_job_id":null,"html_url":"https://github.com/jgabrielfreitas/ktor-hexagonal-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgabrielfreitas%2Fktor-hexagonal-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgabrielfreitas%2Fktor-hexagonal-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgabrielfreitas%2Fktor-hexagonal-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgabrielfreitas%2Fktor-hexagonal-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jgabrielfreitas","download_url":"https://codeload.github.com/jgabrielfreitas/ktor-hexagonal-benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248312172,"owners_count":21082638,"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","exposed","hexagonal","hexagonal-architecture","hexagonal-architectures","jetbrains-exposed","kluent","koin","ktor","mysql"],"created_at":"2025-04-10T22:57:46.943Z","updated_at":"2025-04-10T22:57:48.096Z","avatar_url":"https://github.com/jgabrielfreitas.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ktor-hexagonal-benchmark \u003cimg align=\"right\" width=\"150\" height=\"150\" src=\"https://avatars1.githubusercontent.com/u/28214161?s=280\u0026v=4\"\u003e\n\u003e a experimental ktor application using hexagonal architecture\n\n![Build](https://github.com/jgabrielfreitas/ktor-hexagonal-benchmark/workflows/Build/badge.svg?branch=master) ![License](https://img.shields.io/github/license/jgabrielfreitas/ktor-hexagonal-benchmark) ![Twitter](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Ftwitter.com%2Fjgabrielfreitas) \n\n\n#### About\nThis is a simple user registration application by a kafka command or rest.\n\n#### Architecture\nThe hexagonal architecture was invented by [Alistair Cockburn](https://en.wikipedia.org/wiki/Alistair_Cockburn) in an attempt to avoid known structural pitfalls in object-oriented software design, such as undesired dependencies between layers and contamination of user interface code with business logic, and published in 2005.\n\nThe term \"hexagonal\" comes from the graphical conventions that shows the application component like a hexagonal cell. The purpose was not to suggest that there would be six borders/ports, but to leave enough space to represent the different interfaces needed between the component and the external world.\n\n![](https://miro.medium.com/max/1276/1*EJUMMag-_MvUP1GuDRJHEA.jpeg)\n\n\u003e you can find a Hexagonal Architecture article [here](https://jmgarridopaz.github.io/content/hexagonalarchitecture.html#tc1).\n\n#### Docker\nAll necessary infrastructure is in the `docker-compose.yml`\n\n``` shell\n$ docker-compose up\n```\n\n#### Technologies in this project\n- [ktor](https://ktor.io/) to rest layer\n- [Exposed](https://github.com/JetBrains/Exposed) to database layer\n- [Koin](https://insert-koin.io/) to dependency injection\n- [HikariCP](https://github.com/brettwooldridge/HikariCP) to connection pool optimization\n- [MySql](https://www.mysql.com/) to store data\n- [JUnit5](https://junit.org/junit5/) as test framework\n- [Kluent](https://junit.org/junit5/) for fluent assertions\n- [Kotlin](https://kotlinlang.org/) as lang\n\n#### License\n```\nMIT License\n\nCopyright (c) 2020 João Freitas\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgabrielfreitas%2Fktor-hexagonal-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjgabrielfreitas%2Fktor-hexagonal-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgabrielfreitas%2Fktor-hexagonal-benchmark/lists"}