Skip to content

Microsoft.Orleans.EventSourcing

10.0.0 · net10.0

Orleans.Configuration

Orleans.EventSourcing

ConnectionIssue

class
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

interface
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.

ILogConsistencyProtocolServices

interface
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.

JournaledGrain<TGrainState>

class
A base class for log-consistent grains using standard event-sourcing terminology. All operations are reentrancy-safe.

LogConsistencyStatistics

class
A collection of statistics for grains using log-consistency. See Orleans.EventSourcing.LogConsistentGrain

LogConsistentGrain<TView>

class
Base class for all grains that use log-consistency for managing the state. It is the equivalent of Orleans.Grain for grains using log-consistency. (SiloAssemblyLoader uses it to extract type)

Orleans.EventSourcing.Common

INotificationMessage

interface
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<TLogView, TLogEntry, TSubmissionEntry>

class
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

class
Describes a connection issue that occurred when communicating with primary storage.

RecordedConnectionIssue

struct
Utility class for recording connection issues. It is public, not internal, because it is a useful building block for implementing other consistency providers.

StringEncodedWriteVector

class
Provides operations for a compact, string-encoded set of replica identifiers used as a write vector.

Orleans.EventSourcing.CustomStorage

LogConsistencyProvider

class
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 interface, to define how state is read and how deltas are written. The configured primary cluster identifier is passed to each custom-storage adaptor. Custom-storage adaptors accept submissions from every cluster.

Orleans.EventSourcing.LogStorage

LogConsistencyProvider

class
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<TEntry>

class
A class that extends grain state with versioning metadata, so that a log-consistent grain can use a standard storage provider.

LogStateWithMetaDataAndETag<TEntry>

class
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<TView>

class
A class that extends grain state with versioning metadata, so that a log-consistent grain can use a standard storage provider.

GrainStateWithMetaDataAndETag<TView>

class
A class that extends grain state with versioning metadata, so that a grain with log-view consistency can use a standard storage provider.

LogConsistencyProvider

class
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