dohertj2 dohertj2
  • Joined on 2026-02-20

ZB.MOM.WW.CBDDC.Persistence (1.0.3)

Published 2026-02-20 13:51:38 -05:00 by dohertj2

Installation

dotnet nuget add source --name dohertj2 --username your_username --password your_token 
dotnet add package --source dohertj2 --version 1.0.3 ZB.MOM.WW.CBDDC.Persistence

About this package

Persistence provider for CBDDC.

ZB.MOM.WW.CBDDC.Persistence

BLite persistence provider and foundational persistence implementations for CBDDC.

What's Included

This package provides both BLite provider types and core persistence services:

  • OplogStore: Base implementation for append-only operation log storage
  • VectorClockService: Thread-safe in-memory vector clock management
  • DocumentMetadataStore: Document versioning and metadata tracking
  • SnapshotStore: Snapshot creation and restoration logic
  • PeerConfigurationStore: Peer node configuration persistence

When To Use This Package

  • As a Library User: Install this package to use CBDDC with BLite persistence.
  • As a Provider Developer: Reference this package to build custom persistence providers by extending the base classes

Key Components

OplogStore

Base implementation for operation log storage with:

  • Hash-chain verification
  • Batch application
  • Conflict resolution integration
  • Change event notifications

VectorClockService

Thread-safe vector clock management:

  • In-memory caching for fast lookups
  • Atomic updates
  • Causal ordering tracking

SnapshotStore

Snapshot lifecycle management:

  • Creation and compression
  • Restoration logic
  • Metadata tracking

Creating a Custom Provider

To build your own persistence provider:

public class MyCustomOplogStore : OplogStore
{
    public MyCustomOplogStore(
        IDocumentStore documentStore,
        IConflictResolver conflictResolver,
        ISnapshotMetadataStore? snapshotMetadataStore,
        IVectorClockService vectorClock)
        : base(documentStore, conflictResolver, snapshotMetadataStore, vectorClock)
    {
    }

    protected override async Task<List<OplogEntry>> GetNodeEntriesAsync(
        string nodeId, CancellationToken cancellationToken)
    {
        // Implement storage-specific logic
    }

    // Implement other abstract methods...
}
  • ZB.MOM.WW.CBDDC.Core - Core abstractions and interfaces
  • ZB.MOM.WW.CBDDC.Network - P2P networking layer

Documentation

Installation

dotnet add package ZB.MOM.WW.CBDDC.Persistence

License

MIT - see LICENSE

Dependencies

ID Version Target Framework
ZB.MOM.WW.CBDDC.Core 1.0.3 net10.0
BLite 1.3.1 net10.0
Microsoft.Extensions.DependencyInjection.Abstractions 8.0.0 net10.0
Microsoft.Extensions.Logging.Abstractions 8.0.0 net10.0
Details
NuGet
2026-02-20 13:51:38 -05:00
1
MrDevRobot
65 KiB
Assets (2)
Versions (1) View all
1.0.3 2026-02-20