Table of Contents

Namespace Savvyio

Assembly: Savvyio.Core.dll

Every Savvy I/O application shares one foundational requirement: a way to stamp causation IDs, correlation IDs, and timestamps onto requests, commands, queries, and events — and a single configuration surface that wires the handler and dispatcher graph into Microsoft DI. This namespace contains both the IMetadata contract and the SavvyioOptions model, making it the lowest-level dependency for every other Savvy I/O package.

Start with SavvyioOptions — configure it through AddSavvyIO from Savvyio.Extensions.DependencyInjection and extend it with AddDispatchers, AddHandlers, and the more targeted overloads in the command, domain, query, and event-driven namespaces. Use IMetadata and its extension methods to stamp causation IDs, correlation IDs, and timestamps onto any request, command, or event as it flows through the system. This namespace is where you begin whenever you set up a new Savvy I/O application or extend its metadata model.

Availability: .NET 10 and .NET 9

Extension Members

Type Ext Methods
T ⬇️ GetCausationId<T>, GetCorrelationId<T>, GetRequestId<T>, GetMemberType<T>, SetCausationId<T>, SetCorrelationId<T>, SetRequestId<T>, SetEventId<T>, SetTimestamp<T>, SetMemberType<T>, SaveMetadata<T>
TDestination ⬇️ MergeMetadata<TSource, TDestination>
SavvyioOptions ⬇️ AddDispatchers, AddHandlers
Task<IEnumerable> ⬇️ SingleOrDefaultAsync<T>

Classes

HandlerDiscoveryModel

Represents a model for handler services discovery.

HandlerFactory

Provides access to factory methods for creating and configuring generic handlers that supports MEP.

HandlerServiceAssemblyModel

Represents a model for handler service assemblies.

HandlerServiceTypeImplementationDelegatesModel

Represents a model for handler service type implementation delegates.

HandlerServiceTypeImplementationModel

Represents a model for handler service type implementations.

HandlerServicesDescriptor

Provides information, in a developer friendly way, about implementations of the IHandler<TRequest> interface such as name, declared members and what type of request they handle.

MetadataDictionary

Provides a default implementation of the IMetadataDictionary interface. This class cannot be inherited.

MetadataExtensions

Extension methods for the IMetadata interface.

MetadataFactory

Provides access to factory methods for maintaining metadata in models.

Request

Represents the base class from which all implementations of IRequest should derive.

SavvyioOptions

Specifies options that is related to setting up Savvy I/O services.

SavvyioOptionsExtensions

Extension methods for the SavvyioOptions class.

TaskExtensions

Extension methods for the Task<TResult> class.

Interfaces

IDataSource

A marker interface that specifies the actual I/O communication with a source of data.

IHandler

A marker interface that specifies a handler.

IHandlerServicesDescriptor

Defines a contract about implementations of the IHandler<TRequest> interface such as name, declared members and what type of request they handle.

IHandler<TRequest>

Defines a marker interface for a generic handler.

IIdentity<TKey>

Defines a generic identity typically associated with a storage such as a database.

IMarshaller

Defines methods for serializing and deserializing objects to and from a Stream.

IMetadata

Defines a generic way to associate metadata with any type of object.

IMetadataDictionary

Defines a generic way to support metadata capabilities.

IRequest

A marker interface that specifies a request/model/event.

Delegates

AsyncEventHandler<TEventArgs>

Represents the method that will handle an event when the event provides data asynchronously.