{"id":18420000,"url":"https://github.com/adshan/dotnet-microservices-outbox-pattern","last_synced_at":"2026-04-11T20:43:40.023Z","repository":{"id":157532110,"uuid":"400626777","full_name":"AdsHan/dotnet-microservices-outbox-pattern","owner":"AdsHan","description":"Outbox Pattern strategy to implement atomicity between database transactions and message publishing.","archived":false,"fork":false,"pushed_at":"2021-09-03T18:42:29.000Z","size":39,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T09:15:07.626Z","etag":null,"topics":["dotnet","microservice","net5","outbox-pattern","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"C#","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/AdsHan.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-27T20:22:15.000Z","updated_at":"2022-08-12T01:46:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"cefa6d80-0691-45eb-be5e-999405810a53","html_url":"https://github.com/AdsHan/dotnet-microservices-outbox-pattern","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/AdsHan%2Fdotnet-microservices-outbox-pattern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdsHan%2Fdotnet-microservices-outbox-pattern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdsHan%2Fdotnet-microservices-outbox-pattern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdsHan%2Fdotnet-microservices-outbox-pattern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdsHan","download_url":"https://codeload.github.com/AdsHan/dotnet-microservices-outbox-pattern/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688550,"owners_count":21145766,"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":["dotnet","microservice","net5","outbox-pattern","rabbitmq"],"created_at":"2024-11-06T04:19:28.854Z","updated_at":"2026-04-11T20:43:34.993Z","avatar_url":"https://github.com/AdsHan.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# core-microservices-outbox-pattern\nDemonstração de mensageria utilizada em conjunto com Outbox Pattern para garantir a atomicidade com o armazenamento dos Integration Events.\n\n**O problema:** Após realizar uma transação (commit) que efetua a persistência dos dados, pode ser necessária a publicação de uma mensagem no broker! Ocorre que o commit e a publicação da mensagem são operações distintas, não-atômicas. Logo, após o commit, o broker pode ficar indisponível e a mensagem não ser publicada. Para isso existe o Pattern Outbox, onde os dados da mensagem são armazenados como uma transação junto com a persistência da entidade/agregado. \n \n# Este projeto contém:\n- Arquitetura Microsserviços;\n- RabbitMQ como messaging broker;\n- Message Bus;\n- Persistência em SQLServer da entidade/agregado;\n- Persistência em MongoDB dos Integration Events;\n- Pattern CQRS com MediatR;\n- Pattern Repository;\n- Fluent Validation;\n- Mapeamento das entidades por Fluent API;\n- Entity Framework (EF) Core; \n\n# Como executar:\n- Clonar / baixar o repositório em seu workplace.\n- Baixar o .Net Core SDK e o Visual Studio / Code mais recentes.\n- Instalar o RabbitMQ local ou em container.\n- Instalar o MongoDB local ou em container.\n\n# Sobre\nEste projeto foi desenvolvido por Anderson Hansen sob [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadshan%2Fdotnet-microservices-outbox-pattern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadshan%2Fdotnet-microservices-outbox-pattern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadshan%2Fdotnet-microservices-outbox-pattern/lists"}