Table of Contents

Class InMemorySchemaRegistry

Namespace
AnyProtocol
Assembly
AnyProtocol.dll

Provides a deterministic in-memory registry suitable for composition and testing.

public sealed class InMemorySchemaRegistry : ISchemaRegistry
Inheritance
InMemorySchemaRegistry
Implements
Inherited Members

Constructors

InMemorySchemaRegistry(IEnumerable<IMessageSchemaCompatibilityChecker>?, TimeProvider?)

Creates a registry with the built-in JSON Schema checker.

public InMemorySchemaRegistry(IEnumerable<IMessageSchemaCompatibilityChecker>? checkers = null, TimeProvider? timeProvider = null)

Parameters

checkers IEnumerable<IMessageSchemaCompatibilityChecker>
timeProvider TimeProvider

Methods

CheckCompatibilityAsync(string, string, string, SchemaCompatibilityMode, CancellationToken)

Checks a candidate without changing registry state.

public ValueTask<SchemaCompatibilityResult> CheckCompatibilityAsync(string subject, string format, string candidateDefinition, SchemaCompatibilityMode compatibility = SchemaCompatibilityMode.Backward, CancellationToken cancellationToken = default)

Parameters

subject string
format string
candidateDefinition string
compatibility SchemaCompatibilityMode
cancellationToken CancellationToken

Returns

ValueTask<SchemaCompatibilityResult>

GetAsync(string, int, CancellationToken)

Gets one exact subject version, or null.

public ValueTask<MessageSchema?> GetAsync(string subject, int version, CancellationToken cancellationToken = default)

Parameters

subject string
version int
cancellationToken CancellationToken

Returns

ValueTask<MessageSchema>

GetLatestAsync(string, CancellationToken)

Gets the latest registered version, or null.

public ValueTask<MessageSchema?> GetLatestAsync(string subject, CancellationToken cancellationToken = default)

Parameters

subject string
cancellationToken CancellationToken

Returns

ValueTask<MessageSchema>

RegisterAsync(string, string, string, SchemaCompatibilityMode, CancellationToken)

Registers a compatible version, returning the existing version for an identical definition.

public ValueTask<MessageSchema> RegisterAsync(string subject, string format, string definition, SchemaCompatibilityMode compatibility = SchemaCompatibilityMode.Backward, CancellationToken cancellationToken = default)

Parameters

subject string
format string
definition string
compatibility SchemaCompatibilityMode
cancellationToken CancellationToken

Returns

ValueTask<MessageSchema>