VOOZH about

URL: https://www.nuget.org/packages/mostlylucid.ephemeral.atoms.data

⇱ NuGet Gallery | Mostlylucid.Ephemeral.Atoms.Data 2.6.3




👁 Image
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
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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 Versions Compatible and additional computed target framework versions.
.NET net8.0 net8.0 is compatible.  net8.0-android net8.0-android was computed.  net8.0-browser net8.0-browser was computed.  net8.0-ios net8.0-ios was computed.  net8.0-maccatalyst net8.0-maccatalyst was computed.  net8.0-macos net8.0-macos was computed.  net8.0-tvos net8.0-tvos was computed.  net8.0-windows net8.0-windows was computed.  net9.0 net9.0 is compatible.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 is compatible.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows 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.Postgres

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

Mostlylucid.Ephemeral.Atoms.Data.File

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

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.6.3 165 5/22/2026
2.6.2 175 5/22/2026
2.6.0 165 5/22/2026
2.5.1 161 5/22/2026
2.5.0 160 5/3/2026
2.4.0 156 4/17/2026
2.3.2 170 1/9/2026
2.3.1 183 1/9/2026
2.3.1-alpha0 169 1/9/2026
2.3.0 1,250 1/8/2026
2.3.0-alpha1 171 1/8/2026
2.1.0 172 1/8/2026
2.1.0-preview 169 1/8/2026
2.0.1 167 1/8/2026
2.0.0 216 1/8/2026
2.0.0-alpha1 164 1/8/2026
2.0.0-alpha0 167 1/8/2026
1.7.1 503 12/11/2025
1.6.8 525 12/9/2025
1.6.7 523 12/9/2025
Loading failed