package
0.1.0-alpha.6
Repository: https://github.com/hookdeck/outpost.git
Documentation: pkg.go.dev

# README

RSMQ Fork

This is a fork of github.com/semihbkgr/go-rsmq v1.3.1 (commit d0f7bbc).

Changes from Original

The main change in this fork is support for custom message IDs. This allows for:

  • Deterministic message IDs based on your own identifiers
  • Message deduplication
  • Message overriding/rescheduling

Custom ID Notes

When using custom IDs, be aware that:

  • The msg.Sent timestamp will not reflect the actual send time for overridden messages
    • This field is derived from the message ID's timestamp part
    • For custom IDs, we use a fixed timestamp to avoid timing issues
    • Use Redis sorted set scores (via the delay parameter) for actual timing
  • Message timing is controlled by Redis sorted set scores, not by the ID's timestamp part
  • IDs must be exactly 32 characters long and contain only alphanumeric characters
  • Overriding a message with the same ID but different delay will correctly update the timing

Original License

MIT License - see original repository for details.

# Functions

NewRedisSMQ creates and returns new rsmq client.
WithMessageID returns a SendMessageOption that sets a custom message ID.

# Constants

Unset values are the special values to refer default values of the attributes.
Unset values are the special values to refer default values of the attributes.
Unset values are the special values to refer default values of the attributes.

# Variables

Validation errors.
Validation errors.
Validation errors.
Validation errors.
Validation errors.
Errors returned on rsmq operation.
Errors returned on rsmq operation.
Errors returned on rsmq operation.
Errors returned on rsmq operation.

# Structs

QueueAttributes contains some attributes and stats of queue.
QueueMessage contains content and metadata of message received from queue.
RedisSMQ is the client of rsmq to execute queue and message operations.

# Type aliases

SendMessageOption is a function that configures sendMessageOptions.