namespace Salmon.Core.Depth;
public abstract class Persistence
{
///
/// Must be thread safe
/// Must return immediately
///
/// May not be null
///
public virtual void PushStateChange(string subject, string predicate, object? value, DateTime when)
{
Task.Run(async () =>
{
try
{
var old = await GetLastValue(subject, predicate);
if(old != value)
await RegisterStateChange(subject, predicate, when, value);
}catch (Exception ex)
{
ExceptionCatched(ex);
}
}).ConfigureAwait(false);
}
public abstract Task