Namespace Savvyio
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.