
It can be compiled but at runtime I get missing method exception for some reason. Regarding using UseMessageRetry() and UseInMemoryOutbox(), I'm using message retry in saga definition, but once I've updated to MassTransit 7.2.2 I have a problem with using UseInMemoryOutbox() within saga definition. I'm not sure what 'Used' means and if that could cause this problem. Here is the log when 'authentication service' send request to saga.Īnd every time when I get timeout there is a SAGA log within same second with action 'Used' and this action doesn't belong to this request because correlation id is different. I'm not sure is this related to issue but it's happening every time when I get timeout exception. I've checked logs and I've found one pattern whenever I have a timeout. RespondAsync( new Īnd here is how caller service call saga: ExecuteAsync( async context =>Īwait context. CorrelationIdĮvent(() => GenerateSsoLink, x => x. SetSagaFactory( context => new SsoSessionLinkSagaStateĬorrelationId = context. Public SsoSessionLinkSaga( ILogger logger = null)Ĭc.

Public class SsoSessionLinkSaga : MassTransitStateMachine Composed of a consistent set of capabilities, Conductor decouples services and reduces infrastructure configuration, and keeps routing, fault handling, and monitoring separated. Sso service saga use Cosmos DB persistence (it was previously used InMemmory and I thoguh this will fix the problem, but it also hapening with Cosmos DB persistence). Conductor is a messaging service mesh that extends MassTransit to include run-time service discovery, advanced message routing, and monitoring. Here are details about how I setup everything.Īll services are hosted in Azure AKS and use RabbitMq as a message broker (also hosted within same AKS cluster in same network). Message has been sent to bus but it doesn't initiate new saga instance. Most of the time everything is working fine, but some of requests from 'authenitcation service' to 'sso service' just timeout without any reason.

This 'authentication service' is calling sagas as request/response because process must be done in same request for client. Early feedback is valuable, and you are encouraged to check out the early bits, but recognize that they are just that. This release is still under development and will be pushed in various pre-release forms before the final release is finished. It actually calls 'sso service' saga always and then 'sso service' call 'provisioning service' when needed (provisioning is not always required). This article describes an upcoming release of MassTransit. There is an 'authentication service', that when complete authentication part, calls these sagas to do provisioning and generate sso link. I'm using publish/subscribe way of communication here.īut the problem is with a caller to these sagas. And communication between these 2 sagas is OK. One is just 'sso service' to generate URL and the other is 'provisioning service' that orchestrate provisioning activities (I know I could use just one saga but I was playing with it and tried various scenarios). It's specific case since some provisioning is required and a lot of operations must be done in background so I found saga really helpful to orchestrate all operations. I'm using it in one of my projects and recently I've stuck with one issue. That's because we are following the guidance above, where our websites should really only be Publishing to the service bus.I'm relative new to MassTransit but I really like it more and more.

You'll also notice we registered the bus.

Then in cmd (or powershell which is the default now), run the command. ENTRYPOINT '' Once you have everything setup in the docker file, make sure you save it. That API endpoint is smart, knows about MT, and copies that header into the request message, which Steward uses to get the endpoint address for the request. The important bit is the last several lines where we resolve the IBusControl and register an action to stop when the app disposes. This is pretty important, because we need to start our MassTransit Topshelf console application. To test, Frank sends a request via HTTP to the API endpoint, with the X-MassTransit-Variation header set to 427.
