{"id":18586688,"url":"https://github.com/meks77/microservices","last_synced_at":"2025-12-30T20:19:43.511Z","repository":{"id":122674778,"uuid":"202694798","full_name":"meks77/microservices","owner":"meks77","description":"Comparsion of implementations for a simple read json webservice in different technologies ","archived":false,"fork":false,"pushed_at":"2019-09-21T22:07:36.000Z","size":383,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-26T18:24:58.531Z","etag":null,"topics":["fastify","go","java","micronaut","microservice","mongo","postgres","quarkus","redis"],"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/meks77.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}},"created_at":"2019-08-16T09:00:06.000Z","updated_at":"2022-12-10T21:23:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"a40e15c7-de5b-419c-9f24-eeafd7fa2fb7","html_url":"https://github.com/meks77/microservices","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/meks77%2Fmicroservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meks77%2Fmicroservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meks77%2Fmicroservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meks77%2Fmicroservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meks77","download_url":"https://codeload.github.com/meks77/microservices/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239340504,"owners_count":19622704,"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":["fastify","go","java","micronaut","microservice","mongo","postgres","quarkus","redis"],"created_at":"2024-11-07T00:38:18.465Z","updated_at":"2025-11-01T23:30:26.757Z","avatar_url":"https://github.com/meks77.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# microservices\nComparsion of implementations for a simple read json webservice in different technologies)\n\nDifferent technologies (Java JEE, Micronaut, Quarkus, Spring, Golang, Fastify, Gettify, Erlang, Rust, C++) in combination with different stores (mongo, couchdb, redis, postgres, mariadb, filesystem,...) are compared by runtime statistics, implementation effort, maintainability, ...\n\n## Use case\nA simple JSON web service, which provides addresses of millions of people.\n\n## Target\n### Runtime\nTo be reproducable by (hopefully) everyone, every runtime is provided as container. To avoid creating spam images on hub.docker.com, the images must be build locally.\n\nThe serivce is available by the following url:\n\nhttp://hostName:port/address/{id}\n\n### Runtime statistics\nResource usage (memory, image size, load,...) and the throughput performance will be compared. The hardware will be a e.g. a raspberry pi4.\n\n## HowTo\n### Build\nFirst of all you need to build the images. Therfore just execute the build.sh in the docker directory. All available images will be created.\n\n### Before the first run\nCreate the directories\n* /opt/microservices/mongo\n* /opt/microservices/couchdb\n* /opt/microservices/redis\n* /opt/microservices/postgres\n\n#### Initialize Database data\n##### Mongo\nMongo is intialized automaticall on the first start. Therfor the first start takes more time.\n\n#### CouchDB\nTODO: Describe DataInitializer\n\n#### Redis\nTODO: Describe usage of sh scripts\n\n#### Postgres\nTODO: Describe usage of sql \n\n### Run\n\nIn the directory docker the executable run_container.sh is available. It takes 2 arguments\n\n* database technology(mongo, couchdb, redis, postgres)\n* implementation technology(fastify, go, micronaut, quarkus, wildfly, spring)\n\nIf you want to start a fastify instance which connects to mongo invoke the following:\n\n```bash\n./run_instance.sh mongo fastify\n```\n\nAfterwards you have to finde out the port, to which the service is listening. Do this with the docker command \"docker ps\".\n\nNow you can use the url from above and replace host, port and id with values.\n\n### Measure runtime statistics\nEither use your preferred measuring tool, or use the provided load test.\n\nTODO: Describe how to build and run the loadtest\n\nTODO: \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeks77%2Fmicroservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeks77%2Fmicroservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeks77%2Fmicroservices/lists"}