Mostlylucid.Ephemeral.Atoms.Data 2.6.3

dotnet add package Mostlylucid.Ephemeral.Atoms.Data --version 2.6.3
                    
NuGet\Install-Package Mostlylucid.Ephemeral.Atoms.Data -Version 2.6.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Data" Version="2.6.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mostlylucid.Ephemeral.Atoms.Data" Version="2.6.3" />
                    
Directory.Packages.props
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Data" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mostlylucid.Ephemeral.Atoms.Data --version 2.6.3
                    
#r "nuget: Mostlylucid.Ephemeral.Atoms.Data, 2.6.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mostlylucid.Ephemeral.Atoms.Data@2.6.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mostlylucid.Ephemeral.Atoms.Data&version=2.6.3
                    
Install as a Cake Addin
#tool nuget:?package=Mostlylucid.Ephemeral.Atoms.Data&version=2.6.3
                    
Install as a Cake Tool

Mostlylucid.Ephemeral.Atoms.Data

Core data storage abstractions for signal-driven persistence. This package provides the base interfaces and configuration used by storage-specific implementations.

Installation

dotnet add package Mostlylucid.Ephemeral.Atoms.Data

For actual storage, install one of:

  • Mostlylucid.Ephemeral.Atoms.Data.File - JSON file storage
  • Mostlylucid.Ephemeral.Atoms.Data.Sqlite - SQLite database
  • Mostlylucid.Ephemeral.Atoms.Data.Postgres - PostgreSQL database

Configuration

All storage atoms share common configuration:

var config = new DataStorageConfig
{
    DatabaseName = "orders",           // Used in signal patterns
    SignalPrefix = "save.data",        // save.data.orders
    LoadSignalPrefix = "load.data",    // load.data.orders
    DeleteSignalPrefix = "delete.data", // delete.data.orders
    MaxConcurrency = 1,                // Sequential writes (recommended)
    EmitCompletionSignals = true       // Emit saved.data.orders on success
};

Signal Patterns

Signal Description
save.data.{dbname} Trigger a save operation
load.data.{dbname} Trigger a load operation
delete.data.{dbname} Trigger a delete operation
saved.data.{dbname} Emitted after successful save
deleted.data.{dbname} Emitted after successful delete
error.data.{dbname}:{ExceptionType} Emitted on error

Usage

Direct API (Atom Style)

var signals = new SignalSink();
var config = new DataStorageConfig { DatabaseName = "orders" };

await using var storage = new FileDataStorageAtom<string, Order>(signals, config, "./data");

// Save directly
await storage.SaveAsync("order-123", new Order { Id = "order-123", Total = 99.99m });

// Load
var order = await storage.LoadAsync("order-123");

// Fire-and-forget via signal
storage.EnqueueSave("order-456", new Order { Id = "order-456", Total = 50.00m });

Signal-Driven (Attribute Style)

[EphemeralJobs]
public class OrderService
{
    private readonly IDataStorageAtom<string, Order> _storage;

    public OrderService(IDataStorageAtom<string, Order> storage)
    {
        _storage = storage;
    }

    [EphemeralJob("order.created")]
    public async Task OnOrderCreated(SignalEvent signal, Order order)
    {
        // Storage listens for save.data.orders automatically
        await _storage.SaveAsync(order.Id, order);
    }

    [EphemeralJob("saved.data.orders")]
    public Task OnOrderSaved(SignalEvent signal)
    {
        Console.WriteLine($"Order {signal.Key} saved successfully");
        return Task.CompletedTask;
    }
}

Interfaces

IDataStorageAtom<TKey, TValue>

public interface IDataStorageAtom<TKey, TValue> : IAsyncDisposable
{
    DataStorageConfig Config { get; }
    Task SaveAsync(TKey key, TValue value, CancellationToken ct = default);
    Task<TValue?> LoadAsync(TKey key, CancellationToken ct = default);
    Task DeleteAsync(TKey key, CancellationToken ct = default);
    Task<bool> ExistsAsync(TKey key, CancellationToken ct = default);
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Mostlylucid.Ephemeral.Atoms.Data:

Package Downloads
mostlylucid.ephemeral.complete

Meta-package that references all Mostlylucid.Ephemeral packages - bounded async execution with signals, atoms, and patterns. Install this single package to get everything.

Mostlylucid.Ephemeral.Atoms.Data.Sqlite

SQLite data storage atom for signal-driven persistence. Key-value storage with full ACID guarantees.

Mostlylucid.Ephemeral.Atoms.Data.File

File-based JSON data storage atom for signal-driven persistence. Simple key-value storage using the filesystem.

Mostlylucid.Ephemeral.Atoms.Data.Postgres

PostgreSQL data storage atom for signal-driven persistence. Key-value storage with native JSONB support.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.6.3 159 5/22/2026
2.6.2 172 5/22/2026
2.6.0 160 5/22/2026
2.5.1 157 5/22/2026
2.5.0 153 5/3/2026
2.4.0 151 4/17/2026
2.3.2 168 1/9/2026
2.3.1 181 1/9/2026
2.3.1-alpha0 166 1/9/2026
2.3.0 1,239 1/8/2026
2.3.0-alpha1 169 1/8/2026
2.1.0 171 1/8/2026
2.1.0-preview 166 1/8/2026
2.0.1 165 1/8/2026
2.0.0 213 1/8/2026
2.0.0-alpha1 163 1/8/2026
2.0.0-alpha0 165 1/8/2026
1.7.1 501 12/11/2025
1.6.8 521 12/9/2025
1.6.7 520 12/9/2025
Loading failed