{"id":16089640,"url":"https://github.com/jbogard/nservicebus.messagerouting","last_synced_at":"2025-05-09T01:45:51.666Z","repository":{"id":6734667,"uuid":"7980727","full_name":"jbogard/NServiceBus.MessageRouting","owner":"jbogard","description":"Implementations of EIP message routing patterns","archived":false,"fork":false,"pushed_at":"2024-07-09T21:38:56.000Z","size":1488,"stargazers_count":42,"open_issues_count":5,"forks_count":19,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-09T01:45:43.577Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/jbogard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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":"2013-02-02T19:33:38.000Z","updated_at":"2024-12-27T15:07:10.000Z","dependencies_parsed_at":"2024-10-27T15:44:03.739Z","dependency_job_id":"c60b4cd1-2704-44fa-8710-a46754a273b1","html_url":"https://github.com/jbogard/NServiceBus.MessageRouting","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbogard%2FNServiceBus.MessageRouting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbogard%2FNServiceBus.MessageRouting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbogard%2FNServiceBus.MessageRouting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbogard%2FNServiceBus.MessageRouting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbogard","download_url":"https://codeload.github.com/jbogard/NServiceBus.MessageRouting/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253176443,"owners_count":21866142,"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":[],"created_at":"2024-10-09T14:05:01.972Z","updated_at":"2025-05-09T01:45:51.640Z","avatar_url":"https://github.com/jbogard.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Icon](https://raw.github.com/jbogard/NServiceBus.MessageRouting/master/package_icon.png)\n\nNServiceBus.MessageRouting\n==========================\n\n*Implementations of EIP message routing patterns for NServiceBus*\n\nCurrently the patterns implemented include the routing slip. Planned are a true saga implementation (w/ compensating actions) and more.\n\n![CI](https://github.com/jbogard/NServiceBus.MessageRouting/workflows/CI/badge.svg)\n[![NuGet](https://img.shields.io/nuget/dt/NServiceBus.MessageRouting.svg)](https://www.nuget.org/packages/NServiceBus.MessageRouting) \n[![NuGet](https://img.shields.io/nuget/vpre/NServiceBus.MessageRouting.svg)](https://www.nuget.org/packages/NServiceBus.MessageRouting)\n[![MyGet (dev)](https://img.shields.io/myget/nservicebus-messagerouting-ci/v/NServiceBus.MessageRouting.svg)](https://myget.org/gallery/nservicebus-messagerouting-ci)\n\nRouting Slips\n-------------\n\nThe [Routing Slip pattern](http://www.enterpriseintegrationpatterns.com/RoutingTable.html) enables you to route a message to one or more destinations. Each step handles the message and forwards to the next step.\n\nForwarding is transparent to each handler, nor does each handler need to have any additional configuration for other steps.\n    \nKick off the process by sending a message and including the list of destinations, either from an IPipelineContext inside a message handler or IMessageSession from your endpoint instance:\n\n```c#\n// From your endpoint instance\nendpoint.Route(order, new[] {\"Validate\", \"Fraud\", \"CreditCheck\", \"Process\"});\n\n// Inside a message handler\ncontext.Route(order, new[] {\"Validate\", \"Fraud\", \"CreditCheck\", \"Process\"});\n```\n\nEach endpoint needs to include a handler for the message. Optionally, each endpoint can inspect/modify routing slip attachments:\n\n```c#\ncontext.Extensions.Get\u003cRoutingSlip\u003e().Attachments[\"FraudResult\"] = \"Declined\";\n```\n\nRouting slip attachments are data that you share between different handlers in the route steps. As the message flows from step to step, the original raw transport message is passed through as-is.\n\nThat's all there is to it!\n\n\n## Icon \n\n\u003ca href=\"http://thenounproject.com/term/Route/41620/\" target=\"_blank\"\u003eRoute\u003c/a\u003e designed by \u003ca href=\"http://thenounproject.com/stevenlester/\" target=\"_blank\"\u003eSteven Lester\u003c/a\u003e from The Noun Project","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbogard%2Fnservicebus.messagerouting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbogard%2Fnservicebus.messagerouting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbogard%2Fnservicebus.messagerouting/lists"}