Normally I create 1 class that implements Saga<T>:
public class MyClass1 : Saga<MySagaData>;
{
………
}
MySagaData code:
[SagaIndex("ExternalCombinedIdentifier")]
[SagaIndex("MyOwnId")]
public class MySagaData: IContainSagaData
{
public MySagaData()
{
……
}
public Guid Id { get; set; }
public string Originator { get; set; }
public string OriginalMessageId { get; set; }
……
}
Now I need to use the same Saga (Saga<MySagaData>) in a another class, let’s call it MyClass2.
If I implement MyClass2 like the following: public class MyClass2 : Saga<MySagaData> { ……… }
will the ACID properties of Saga<MySagaData> be present for MyClass1 and MyClass2 as if Saga<MySagaData> would just being used in 1 class? And in the ACID properties I include for example rollback a message handler and retry it in MyClass1, if another message handler for the other class (MyClass2) just commited changes to the MySagaData?