# Microsoft.Orleans.EventSourcing

10.0.0 | net10.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.EventSourcing)

## Orleans.Configuration

- [CustomStorageLogConsistencyOptions](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.configuration.customstoragelogconsistencyoptions/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## Orleans.EventSourcing

- [ConnectionIssue](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.connectionissue/) - Represents information about connection issues encountered inside log consistency protocols. It is used both inside the protocol to track retry loops, and is made visible to users who want to monitor their log-consistent grains for communication issues.
- [IConnectionIssueListener](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.iconnectionissuelistener/) - An interface that is implemented by log-consistent grains using virtual protected methods that can be overridden by users, in order to monitor the connection issues.
- [ILogConsistencyDiagnostics](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencydiagnostics/) - Interface for diagnostics.
- [ILogConsistencyProtocolMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolmessage/) - interface to mark classes that represent protocol messages. All such classes must be serializable.
- [ILogConsistencyProtocolParticipant](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolparticipant/) - Grain interface for grains that participate in multi-cluster log-consistency protocols.
- [ILogConsistencyProtocolServices](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/) - Functionality for use by log view adaptors that use custom consistency or replication protocols. Abstracts communication between replicas of the log-consistent grain in different clusters.
- [ILogViewAdaptor&lt;TLogView, TLogEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewadaptor-2/) - A log view adaptor is the storage interface for `Orleans.EventSourcing.LogConsistentGrain-1`, whose state is defined as a log view. There is one adaptor per grain, which is installed by [ILogViewAdaptorFactory](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewadaptorfactory/) when the grain is activated.
- [ILogViewAdaptorFactory](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewadaptorfactory/) - Interface to be implemented for a log-view adaptor factory
- [ILogViewAdaptorHost&lt;TLogView, TLogEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewadaptorhost-2/) - Interface implemented by all grains which use log-view consistency It gives the log view adaptor access to grain-specific information and callbacks.
- [ILogViewRead&lt;TView, TLogEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewread-2/) - Interface for reading the log view.
- [ILogViewUpdate&lt;TLogEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogviewupdate-1/) - Interface for updating the log.
- [JournaledGrain&lt;TGrainState, TEventBase&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.journaledgrain-2/) - A base class for log-consistent grains using standard event-sourcing terminology. All operations are reentrancy-safe.
- [JournaledGrain&lt;TGrainState&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.journaledgrain-1/) - A base class for log-consistent grains using standard event-sourcing terminology. All operations are reentrancy-safe.
- [LogConsistencyStatistics](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logconsistencystatistics/) - A collection of statistics for grains using log-consistency. See `Orleans.EventSourcing.LogConsistentGrain-1`
- [LogConsistentGrain&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logconsistentgrain-1/) - Base class for all grains that use log-consistency for managing the state. It is the equivalent of `Orleans.Grain-1` for grains using log-consistency. (SiloAssemblyLoader uses it to extract type)
- [ProtocolTransportException](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.protocoltransportexception/) - Exception thrown by protocol messaging layer.

## Orleans.EventSourcing.Common

- [BatchedNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.batchednotificationmessage/) - A notification message containing a batch of notification messages.
- [INotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.inotificationmessage/) - Base class for notification messages that are sent by log view adaptors to other clusters, after updating the log. All subclasses must be serializable.
- [PrimaryBasedLogViewAdaptor&lt;TLogView, TLogEntry, TSubmissionEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.primarybasedlogviewadaptor-3/) - A general template for constructing log view adaptors that are based on a sequentially read and written primary. We use this to construct a variety of different log-consistency providers, all following the same basic pattern (read and write latest view from/to primary, and send notifications after writing). Note that the log itself is transient, i.e. not actually saved to storage - only the latest view and some metadata (the log position, and write flags) is stored in the primary. It is safe to interleave calls to this adaptor (using grain scheduler only, of course). Subclasses override ReadAsync and WriteAsync to read from / write to primary. Calls to the primary are serialized, i.e. never interleave.
- [PrimaryOperationFailed](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.primaryoperationfailed/) - Describes a connection issue that occurred when communicating with primary storage.
- [RecordedConnectionIssue](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.recordedconnectionissue/) - Utility class for recording connection issues. It is public, not internal, because it is a useful building block for implementing other consistency providers.
- [StringEncodedWriteVector](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.stringencodedwritevector/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [SubmissionEntry&lt;TLogEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.submissionentry-1/) - Base class for submission entries stored in pending queue.
- [VersionNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.common.versionnotificationmessage/) - A simple notification message containing only the version.

## Orleans.EventSourcing.CustomStorage

- [ICustomStorageInterface&lt;TState, TDelta&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.customstorage.icustomstorageinterface-2/) - The storage interface exposed by grains that want to use the CustomStorage log-consistency provider
- [LogConsistencyProvider](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.customstorage.logconsistencyprovider/) - A log-consistency provider that relies on grain-specific custom code for reading states from storage, and appending deltas to storage. Grains that wish to use this provider must implement the `Orleans.EventSourcing.CustomStorage.ICustomStorageInterface-2` interface, to define how state is read and how deltas are written. If the provider attribute "PrimaryCluster" is supplied in the provider configuration, then only the specified cluster accesses storage, and other clusters may not issue updates.
- [LogConsistencyProviderFactory](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.customstorage.logconsistencyproviderfactory/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## Orleans.EventSourcing.LogStorage

- [LogConsistencyProvider](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logconsistencyprovider/) - A log-consistency provider that stores the latest view in primary storage, using any standard storage provider. Supports multiple clusters connecting to the same primary storage (doing optimistic concurrency control via e-tags) The log itself is transient, i.e. not actually saved to storage - only the latest view (snapshot) and some metadata (the log position, and write flags) are stored in the primary.
- [LogStateWithMetaData&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadata-1/) - A class that extends grain state with versioning metadata, so that a log-consistent grain can use a standard storage provider.
- [LogStateWithMetaDataAndETag&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadataandetag-1/) - A class that extends grain state with versioning metadata, so that a grain with log-view consistency can use a standard storage provider.

## Orleans.EventSourcing.StateStorage

- [GrainStateWithMetaData&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.statestorage.grainstatewithmetadata-1/) - A class that extends grain state with versioning metadata, so that a log-consistent grain can use a standard storage provider.
- [GrainStateWithMetaDataAndETag&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.statestorage.grainstatewithmetadataandetag-1/) - A class that extends grain state with versioning metadata, so that a grain with log-view consistency can use a standard storage provider.
- [LogConsistencyProvider](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.statestorage.logconsistencyprovider/) - A log-consistency provider that stores the latest view in primary storage, using any standard storage provider. Supports multiple clusters connecting to the same primary storage (doing optimistic concurrency control via e-tags) The log itself is transient, i.e. not actually saved to storage - only the latest view (snapshot) and some metadata (the log position, and write flags) are stored in the primary.

## Orleans.Hosting

- [CustomStorageSiloBuilderExtensions](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.hosting.customstoragesilobuilderextensions/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [LogStorageSiloBuilderExtensions](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.hosting.logstoragesilobuilderextensions/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [StateStorageSiloBuilderExtensions](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.hosting.statestoragesilobuilderextensions/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## OrleansCodeGen.Orleans.EventSourcing

- [Codec_ConnectionIssue](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.codec-connectionissue/) - Serializer for types which are abstract and therefore cannot be instantiated themselves, such as abstract classes and interface types.
- [Codec_Invokable_ILogConsistencyProtocolParticipant_GrainReference_0DB087C8](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.codec-invokable-ilogconsistencyprotocolparticipant-grainreference-0db087c8/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_Invokable_ILogConsistencyProtocolParticipant_GrainReference_22FD7D72](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.codec-invokable-ilogconsistencyprotocolparticipant-grainreference-22fd7d72/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_Invokable_ILogConsistencyProtocolParticipant_GrainReference_A36FC884](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.codec-invokable-ilogconsistencyprotocolparticipant-grainreference-a36fc884/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_ProtocolTransportException](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.codec-protocoltransportexception/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_ConnectionIssue](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.copier-connectionissue/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_Invokable_ILogConsistencyProtocolParticipant_GrainReference_0DB087C8](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.copier-invokable-ilogconsistencyprotocolparticipant-grainreference-0db087c8/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_Invokable_ILogConsistencyProtocolParticipant_GrainReference_22FD7D72](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.copier-invokable-ilogconsistencyprotocolparticipant-grainreference-22fd7d72/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_Invokable_ILogConsistencyProtocolParticipant_GrainReference_A36FC884](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.copier-invokable-ilogconsistencyprotocolparticipant-grainreference-a36fc884/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_ProtocolTransportException](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.copier-protocoltransportexception/) - Default copier implementation for (rarely copied) exception classes
- [Invokable_ILogConsistencyProtocolParticipant_GrainReference_0DB087C8](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.invokable-ilogconsistencyprotocolparticipant-grainreference-0db087c8/) - Base class for requests for methods which return `System.Threading.Tasks.ValueTask`.
- [Invokable_ILogConsistencyProtocolParticipant_GrainReference_22FD7D72](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.invokable-ilogconsistencyprotocolparticipant-grainreference-22fd7d72/) - Base class for requests for methods which return `System.Threading.Tasks.ValueTask`.
- [Invokable_ILogConsistencyProtocolParticipant_GrainReference_A36FC884](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.invokable-ilogconsistencyprotocolparticipant-grainreference-a36fc884/) - Base class for requests for methods which return `System.Threading.Tasks.ValueTask`.

## OrleansCodeGen.Orleans.EventSourcing.Common

- [Codec_BatchedNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.codec-batchednotificationmessage/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_PrimaryOperationFailed](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.codec-primaryoperationfailed/) - Serializer for types which are abstract and therefore cannot be instantiated themselves, such as abstract classes and interface types.
- [Codec_VersionNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.codec-versionnotificationmessage/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_BatchedNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.copier-batchednotificationmessage/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_PrimaryOperationFailed](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.copier-primaryoperationfailed/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_VersionNotificationMessage](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.common.copier-versionnotificationmessage/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## OrleansCodeGen.Orleans.EventSourcing.LogStorage

- [Codec_LogStateWithMetaData&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.logstorage.codec-logstatewithmetadata-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_LogStateWithMetaDataAndETag&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.logstorage.codec-logstatewithmetadataandetag-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_LogStateWithMetaData&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.logstorage.copier-logstatewithmetadata-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_LogStateWithMetaDataAndETag&lt;TEntry&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.logstorage.copier-logstatewithmetadataandetag-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## OrleansCodeGen.Orleans.EventSourcing.StateStorage

- [Codec_GrainStateWithMetaData&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.statestorage.codec-grainstatewithmetadata-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Codec_GrainStateWithMetaDataAndETag&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.statestorage.codec-grainstatewithmetadataandetag-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_GrainStateWithMetaData&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.statestorage.copier-grainstatewithmetadata-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
- [Copier_GrainStateWithMetaDataAndETag&lt;TView&gt;](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleanscodegen.orleans.eventsourcing.statestorage.copier-grainstatewithmetadataandetag-1/) - Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
