{"id":22886497,"url":"https://github.com/nicojuicy/poc-micro-service","last_synced_at":"2026-04-30T01:37:02.744Z","repository":{"id":47248253,"uuid":"240411816","full_name":"NicoJuicy/poc-micro-service","owner":"NicoJuicy","description":"PoC - Microservice with a gateway, healthchecks, 2 microservices and a neglictable frontend with IdentityServer in asp.net core","archived":false,"fork":false,"pushed_at":"2021-09-06T22:54:44.000Z","size":3660,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-06T23:18:51.632Z","etag":null,"topics":["identityserver4","marten","microservices","ocelot","poc","postgresql"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/NicoJuicy.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}},"created_at":"2020-02-14T02:26:21.000Z","updated_at":"2022-11-09T19:32:20.000Z","dependencies_parsed_at":"2022-07-20T20:03:08.748Z","dependency_job_id":null,"html_url":"https://github.com/NicoJuicy/poc-micro-service","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/NicoJuicy%2Fpoc-micro-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicoJuicy%2Fpoc-micro-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicoJuicy%2Fpoc-micro-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicoJuicy%2Fpoc-micro-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicoJuicy","download_url":"https://codeload.github.com/NicoJuicy/poc-micro-service/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246523041,"owners_count":20791431,"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":["identityserver4","marten","microservices","ocelot","poc","postgresql"],"created_at":"2024-12-13T20:19:00.143Z","updated_at":"2026-04-30T01:36:57.723Z","avatar_url":"https://github.com/NicoJuicy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foreword\n\nThis is just a PoC, treat it as one, what is described as working works. It served it's goal :)\n\n# Requirements\n- Docker/local with Nats running\n- Docker/local with Postgress running \n- Change the appsettings on the NoteService.Api/ContactsService.Api ( postgress connstring + Nats IP)\n\n# poc-micro-service\nPoC - Microservice with a gateway, healthchecks, 2 microservices and a quick frontend with IdentityServer in asp.net core 3.0\n\n### Tech: \n\n- Nats as message broker ( sending is implemented, but not handling them) \n- Postgress as DocumentStore\n- Ocelot as gateway\n\n### Notes\n\nThis is a quick PoC as i am integrating microservices ( but more complete) in another project of mine.\n\nSome minor remarks:\n\n1. Gateway\n\n- note microservice is ok\n- contacts microservice is ok\n\nBut the gateway won't redirect to the path to notes ( it will go to contacts).\n\n2. Frontend only gets the list/notes and is dirty :), used it to test RazorPages quickly\n\n3. TagService / SchedulerService / Multitenancy is not implemented. The concepts are here though.\n\n4. Using mediatR, Nats and Postgres. There was a quick PoC for integrating Nats as message broker ( and i think it works). But didn't verify it as IntegrationEvents are not yet handled.\n\n5. **Infrastructure layer should only contain CRUD of the Aggregate ( eg. Contact).**, it contains too much now.\n\n### changes for my other microservices\n\n- Chosen tech is robust, structure is awesome\n\n- using a framework that supports SAGA's ( eg. MassTransit)\n\n- more DDD ( eg. AggregateRoot, value-objects, ...)\n\n- other flow of sending events ( through the AggregateRoot)\n\n- Angular 8 or Vue 3 as admin dashboard, not for customer webapps ( = visitor oriented). Didn't like Razor Pages, but liked the minimalistic implemention. I'm wrapping Services with route-attributes for minimal code + dependencies + quick custumization for webapps connected to bff's.\n\n- removing the api layer and gateway, leaves a robust modular monolith structure and removes a lot of lag ( eg. Gateway alone is 50ms delay ) and simplifies devops complexity\n\n- Implement IdentityServer for user management, it's worth investigating\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicojuicy%2Fpoc-micro-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicojuicy%2Fpoc-micro-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicojuicy%2Fpoc-micro-service/lists"}