{"id":36924124,"url":"https://github.com/malikmasis/TelephoneDirectory","last_synced_at":"2026-01-19T18:00:44.319Z","repository":{"id":37087098,"uuid":"318628602","full_name":"malikmasis/TelephoneDirectory","owner":"malikmasis","description":"microservices-\u003e .net 8, golang - Docker, Tye, Dapr, Ocelot, RabbitMq, MassTransit, mssql, postgresql, elasticsearch, kibana, jwt","archived":false,"fork":false,"pushed_at":"2024-07-11T21:18:35.000Z","size":281,"stargazers_count":69,"open_issues_count":3,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-07-12T00:07:43.674Z","etag":null,"topics":["dapr","docker","dotnet8","golang","masstransit","micro-services","ocelot","rabbitmq","serilog","tye"],"latest_commit_sha":null,"homepage":"","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/malikmasis.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":"2020-12-04T20:31:50.000Z","updated_at":"2024-07-08T20:21:30.000Z","dependencies_parsed_at":"2024-07-11T23:44:46.163Z","dependency_job_id":null,"html_url":"https://github.com/malikmasis/TelephoneDirectory","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/malikmasis/TelephoneDirectory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malikmasis%2FTelephoneDirectory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malikmasis%2FTelephoneDirectory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malikmasis%2FTelephoneDirectory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malikmasis%2FTelephoneDirectory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/malikmasis","download_url":"https://codeload.github.com/malikmasis/TelephoneDirectory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malikmasis%2FTelephoneDirectory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28578952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T17:42:58.221Z","status":"ssl_error","status_checked_at":"2026-01-19T17:40:54.158Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["dapr","docker","dotnet8","golang","masstransit","micro-services","ocelot","rabbitmq","serilog","tye"],"created_at":"2026-01-12T19:00:25.487Z","updated_at":"2026-01-19T18:00:44.311Z","avatar_url":"https://github.com/malikmasis.png","language":"C#","funding_links":[],"categories":["C# #"],"sub_categories":[],"readme":"﻿# TelephoneDirectory\nmicroservices -\u003e .net 8.0, [golang](https://medium.com/software-development-turkey/dotnet-tabanl%C4%B1-mikroservis-projesine-go-servisi-eklemek-da808fa6aedc) - [Docker](https://medium.com/software-development-turkey/docker-%C3%A7al%C4%B1%C5%9Fma-notlar%C4%B1m-be626fd14cc1), [Tye](https://medium.com/software-development-turkey/deneysel-bir-%C3%BCr%C3%BCn-project-tye-768e335527d2),[Dapr](https://medium.com/software-development-turkey/dapr-ile-ba%C4%9F%C4%B1ms%C4%B1z-servisler-3b3882e58bca), Jenkins, [Ocelot](https://ocelot.readthedocs.io/en/latest/introduction/gettingstarted.html), [RabbitMq](https://medium.com/software-development-turkey/asenkron-i%CC%87leti%C5%9Fimde-verimlilik-rabbitmq-ile-mikroservisler-aras%C4%B1-entegrasyon-c8c5924f0c72), [MassTransit](https://medium.com/software-development-turkey/lightweight-service-bus-masstransit-1c31c7a6e483), Serilog, Elasticsearch, Kibana, [Swagger / SwaggerForOcelot](https://feyyazacet.medium.com/swagger-ocelot-swaggerforocelot-1ec49bbf8790),\n[Prometheus(integrated to Jaeger)](https://medium.com/software-development-turkey/open-telemetry-10d9c7cbdf18), Jwt, Postgresql, Mssql\n\u003eIf you want to read in detail in Turkish, please visit [here](https://medium.com/software-development-turkey/mikroservis-maceram-1e070463d0ea)\n\n\u003e [Summary of the project - video - Turkish](https://www.youtube.com/watch?v=uXuOKL1cxIE\u0026t=3s\u0026ab_channel=MalikMasis) \n\n##### Running the project\n\nThe project was created with Code First approach. In this way, we will be able to run the database on the code side.\nAlso, there is a different database for each service. In this way, we are not dependent on only one database.\nPostgre and Mssql were used as databases. You can switch them easily.\n\n```\n* dotnet ef migrations add Initial\n* dotnet ef database update\n```\n\u003e Note: No need to take any action as the existing migrations in the project are automatically run.\n\n##### General structure\n- API Gateway -\u003e Ocelot\n- Message Broker -\u003e Rabbitmq, Redis(dapr)\n- Service Bus -\u003e MassTransit\n- Health Check -\u003e Watchdog - (via slack implementation)\n- Continuous Integration -\u003e Jenkins\n- Logging -\u003e Serilog, Elastic Search and Kibana\n- Databases -\u003e Postgre and Mssql\n- Open Doc -\u003e Swagger and SwaggerForOcelot\n- Applied Pattern -\u003e DDD, Saga Pattern, Mediator, CQRS, Circuit Breaker, Event Sourcing, Publish-Subscribe, Sidecar\n- Tests -\u003e xUnit (via MassTransit) - Mocking, Integration, CDC, and Functional Tests\n\n##### Existed microservices\n- Ocelot - Gateway, .net6  - It provides coordination as a gateway.\n- Guide - Postgre, .net6 - We can perform all kinds of CRUD operations related to contacts.\n- Report - Postgre, .net6 - There are some reports on the people in the directory.\n- Auth - MSSQL, .net6 - We keep users. Authentication is done with JWT.\n- Example - A simple golang project that consumes events by integrated dapr and sends notifications.\n- Saga - Saga Pattern's Orchestration method is used for transaction management.\n\n##### Installation\nThanks to the `docker-compose.yml` file, both the tools used and the databases will run properly.\n```\n* docker-compose up -d\n```\nOr\n```\n* tye run / run-tye.ps1\n```\n\n##### Testing\n\n- Unit Tests started to be added. We started to use it with MassTransit for consumers. Also mocking is used.\n\n[MassTransit unit testing - video](https://www.youtube.com/watch?v=Cx-Mc0DCpfE\u0026ab_channel=ChrisPatterson)  \u003cbr /\u003e\n[Unit testing in general - blog - Turkish](https://medium.com/software-development-turkey/birim-unit-test-ile-veri-k%C3%BCmeleri-xunit-inline-member-class-data-601b3fb4e723) \u003cbr /\u003e \n[Mocking in unit testing  - video - Turkish](https://www.youtube.com/watch?v=6oxNumwFmR0\u0026t=1s\u0026ab_channel=MalikMasis)\n\u003cbr /\u003e\n- Integration Test:\n\n[Integration testing in general - blog - Turkish](https://medium.com/software-development-turkey/integration-test-net-core-xunit-web-application-factory-600ca6a52223) \u003cbr /\u003e\n[Integration testing in general - video - Turkish](https://www.youtube.com/watch?v=My0FdMKq2JA\u0026t=4s\u0026ab_channel=MalikMasis) \u003cbr /\u003e\n- Consumer Driven Contracts Test:\n\n[Implementation of CDC with Pact](https://medium.com/software-development-turkey/pact-ile-cdc-testing-1c97aad99d5e)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalikmasis%2FTelephoneDirectory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalikmasis%2FTelephoneDirectory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalikmasis%2FTelephoneDirectory/lists"}