You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the primary goals of Compose is to not enforce service extensions relying upon Compose, instead they can simply reference System namespace and Compose will work it's magic.
As part of the Compose.Remoting project, we have identified a potential requirement for being able to scope transitions.
That is, we need the ability to mark a block of executing code locked from transitioning (Unit of Work must be completed before transitioning). In the past, I have always argued that this should be the responsibility of an application controller which monitors units of work in whichever bespoke method the consumer requires, and ensures it only performs a transition when the work completes.
This is a nice clean way of keeping to the aforementioned Compose Goal.
However, when concurrency comes into play, things get a bit more difficult.
Units of Work intentionally omitted from example for brevity
We can use standard Compose functionality to transition IDependency to any implementation we like. But what if we have two instances of Consumer? We are not able to transition just one of them. If Unit's of work were involved in the example above, any bespoke logic attempting to control transitioning around the UoW would still struggle with the concurrency issue.
Therefore, we need a means to scope transitional behaviour to specific object graphs.
The text was updated successfully, but these errors were encountered:
One of the primary goals of Compose is to not enforce service extensions relying upon Compose, instead they can simply reference System namespace and Compose will work it's magic.
As part of the
Compose.Remoting
project, we have identified a potential requirement for being able to scope transitions.That is, we need the ability to mark a block of executing code locked from transitioning (Unit of Work must be completed before transitioning). In the past, I have always argued that this should be the responsibility of an application controller which monitors units of work in whichever bespoke method the consumer requires, and ensures it only performs a transition when the work completes.
This is a nice clean way of keeping to the aforementioned Compose Goal.
However, when concurrency comes into play, things get a bit more difficult.
Given this example:
Units of Work intentionally omitted from example for brevity
We can use standard Compose functionality to transition
IDependency
to any implementation we like. But what if we have two instances ofConsumer
? We are not able to transition just one of them. If Unit's of work were involved in the example above, any bespoke logic attempting to control transitioning around the UoW would still struggle with the concurrency issue.Therefore, we need a means to scope transitional behaviour to specific object graphs.
The text was updated successfully, but these errors were encountered: