Mostlylucid.Ephemeral.Atoms.Volatile
2.4.0
dotnet add package Mostlylucid.Ephemeral.Atoms.Volatile --version 2.4.0
NuGet\Install-Package Mostlylucid.Ephemeral.Atoms.Volatile -Version 2.4.0
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Volatile" Version="2.4.0" />
<PackageVersion Include="Mostlylucid.Ephemeral.Atoms.Volatile" Version="2.4.0" />
<PackageReference Include="Mostlylucid.Ephemeral.Atoms.Volatile" />
paket add Mostlylucid.Ephemeral.Atoms.Volatile --version 2.4.0
#r "nuget: Mostlylucid.Ephemeral.Atoms.Volatile, 2.4.0"
#:package Mostlylucid.Ephemeral.Atoms.Volatile@2.4.0
#addin nuget:?package=Mostlylucid.Ephemeral.Atoms.Volatile&version=2.4.0
#tool nuget:?package=Mostlylucid.Ephemeral.Atoms.Volatile&version=2.4.0
Mostlylucid.Ephemeral.Atoms.Volatile
Remove completed operations the moment they emit a kill signal so your window stays tiny and every operation is truly ephemeral.
Every EphemeralWorkCoordinator now implements IOperationEvictor.TryKill(long) so you can ask it to drop an operation
immediately. VolatileOperationAtom hooks a shared SignalSink, listens for a configurable kill pattern (default
kill.*), and evicts the matching operation as soon as its kill signal arrives. Combine with
EphemeralOptions.EnableOperationEcho / OperationEchoMaker if you still need a trimmed copy of the final signal wave.
var sink = new SignalSink();
await using var coordinator = new EphemeralWorkCoordinator<JobItem>(
async (job, ct) => await ProcessQuick(job, ct),
new EphemeralOptions
{
Signals = sink,
MaxTrackedOperations = 32,
EnableOperationEcho = true,
OperationEchoRetention = TimeSpan.FromSeconds(30)
});
using var volatileAtom = new VolatileOperationAtom(sink, coordinator);
await coordinator.EnqueueAsync(new JobItem("work-1"));
// inside your job: emitter.Emit("kill.work");
When the job raises kill.work, the atom finds the operation ID carried in the signal, calls TryKill, and the
operation disappears instantly. Echos stay intact because the coordinator still raises OperationFinalized, which feeds
the echo store. Use OperationEchoAtom / OperationEchoMaker to persist the echo via *.echo.start / *.echo.end
signals before the kill finally removes the operation.
| Product | Versions 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. |
-
net10.0
- mostlylucid.ephemeral (>= 2.4.0)
-
net8.0
- mostlylucid.ephemeral (>= 2.4.0)
-
net9.0
- mostlylucid.ephemeral (>= 2.4.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Mostlylucid.Ephemeral.Atoms.Volatile:
| 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. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.4.0 | 0 | 4/17/2026 |
| 2.3.2 | 114 | 1/9/2026 |
| 2.3.1 | 110 | 1/9/2026 |
| 2.3.1-alpha0 | 102 | 1/9/2026 |
| 2.3.0 | 98 | 1/8/2026 |
| 2.3.0-alpha1 | 1,069 | 1/8/2026 |
| 2.1.0 | 109 | 1/8/2026 |
| 2.1.0-preview | 105 | 1/8/2026 |
| 2.0.1 | 107 | 1/8/2026 |
| 2.0.0 | 146 | 1/8/2026 |
| 2.0.0-alpha1 | 103 | 1/8/2026 |
| 1.7.1 | 424 | 12/11/2025 |
| 1.6.8 | 447 | 12/9/2025 |
| 1.6.7 | 434 | 12/9/2025 |
| 1.6.6 | 438 | 12/9/2025 |
| 1.6.5 | 435 | 12/9/2025 |
| 1.6.0 | 426 | 12/8/2025 |