Class DbOffsetStore
Used by the OffsetStoreExactlyOnceStrategy to keep track of the last processed offsets and guarantee that each message is processed only once.
An IDbContext is used to store the offsets into the database.
Inherited Members
Namespace: Silverback.Messaging.Inbound.ExactlyOnce.Repositories
Assembly: Silverback.Integration.dll
Syntax
public sealed class DbOffsetStore : RepositoryBase<StoredOffset>, IOffsetStore, ITransactional
Constructors
| Improve this doc View sourceDbOffsetStore(IDbContext)
Initializes a new instance of the DbOffsetStore class.
Declaration
public DbOffsetStore(IDbContext dbContext)
Parameters
| Type | Name | Description |
|---|---|---|
| IDbContext | dbContext | The IDbContext to use as storage. |
Methods
| Improve this doc View sourceCommitAsync()
Called when the message has been successfully processed to commit the transaction.
Declaration
public Task CommitAsync()
Returns
| Type | Description |
|---|---|
| Task | A Task representing the asynchronous operation. |
GetLatestValueAsync(string, IConsumerEndpoint)
Returns the latest recorded offset value for the specified offset key and endpoint.
Declaration
public Task<IBrokerMessageOffset?> GetLatestValueAsync(string offsetKey, IConsumerEndpoint endpoint)
Parameters
| Type | Name | Description |
|---|---|---|
| string | offsetKey | The key of the offset to be retrieved. The offset key uniquely identifies the queue, topic or partition. |
| IConsumerEndpoint | endpoint | The endpoint for which the recorded offset has to be be returned. |
Returns
| Type | Description |
|---|---|
| Task<IBrokerMessageOffset> | A Task<TResult> representing the asynchronous operation. The task result contains the latest offset. |
RollbackAsync()
Called when an exception occurs during the message processing to rollback the transaction.
Declaration
public Task RollbackAsync()
Returns
| Type | Description |
|---|---|
| Task | A Task representing the asynchronous operation. |
StoreAsync(IBrokerMessageOffset, IConsumerEndpoint)
Stores the offset of the processed message.
Declaration
public Task StoreAsync(IBrokerMessageOffset offset, IConsumerEndpoint endpoint)
Parameters
| Type | Name | Description |
|---|---|---|
| IBrokerMessageOffset | offset | The offset to be stored. |
| IConsumerEndpoint | endpoint | The endpoint the offset belongs to. |
Returns
| Type | Description |
|---|---|
| Task | A Task representing the asynchronous operation. |