using System;
using System.Threading.Tasks;
namespace Pole.Sagas.Client.Abstraction
{
public interface IEventSender
{
Task SagaStarted(string sagaId, string serviceName, DateTime addTime);
Task SagaEnded(string sagaId, DateTime ExpiresAt);
Task ActivityExecuting(string activityId,string activityName, string sagaId, string parameterData, int order, DateTime addTime);
Task ActivityExecuteAborted(string activityId);
///
///
///
///
/// sagaId 不为空 服务端会set saga.status=ended
///
///
Task ActivityCompensateAborted(string activityId, string sagaId, string errors);
Task ActivityCompensated(string activityId);
Task ActivityOvertimeCompensated(string activityId,bool compensated);
Task ActivityExecuteOvertime(string activityId);
Task ActivityRevoked(string activityId);
}
}