![]() |
VOOZH | about |
dotnet add package Mostlylucid.Ephemeral.Atoms.Data --version 2.6.3
NuGet\Install-Package Mostlylucid.Ephemeral.Atoms.Data -Version 2.6.3
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Data" Version="2.6.3" />
<PackageVersion Include="Mostlylucid.Ephemeral.Atoms.Data" Version="2.6.3" />Directory.Packages.props
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Data" />Project file
paket add Mostlylucid.Ephemeral.Atoms.Data --version 2.6.3
#r "nuget: Mostlylucid.Ephemeral.Atoms.Data, 2.6.3"
#:package Mostlylucid.Ephemeral.Atoms.Data@2.6.3
#addin nuget:?package=Mostlylucid.Ephemeral.Atoms.Data&version=2.6.3Install as a Cake Addin
#tool nuget:?package=Mostlylucid.Ephemeral.Atoms.Data&version=2.6.3Install as a Cake Tool
Core data storage abstractions for signal-driven persistence. This package provides the base interfaces and configuration used by storage-specific implementations.
dotnet add package Mostlylucid.Ephemeral.Atoms.Data
For actual storage, install one of:
Mostlylucid.Ephemeral.Atoms.Data.File - JSON file storageMostlylucid.Ephemeral.Atoms.Data.Sqlite - SQLite databaseMostlylucid.Ephemeral.Atoms.Data.Postgres - PostgreSQL databaseAll 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 | 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 |
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 });
[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;
}
}
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. |
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. |
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 |