New Features
- Implemented a delay feature in the
SendMessage()
API, allowing messages to be scheduled for future delivery. - Added a concurrency option to
ConsumerOptions
, enabling control over the number of concurrent message processing workers. - Updated
DynamoMQClient
to store visibility timeout as a datetime in theinvisible_until_at
field and added aretryInterval
parameter to theConsumer
. - Implemented visibility timeout, allowing messages to remain invisible in the queue for a specified duration after being received.
- Changed
DefaultVisibilityTimeoutInSeconds
to 30 seconds, modifying the default behavior for message visibility.
Documentation Updates
- Written comprehensive GoDocs for
DynamoMQ Consumer
,Producer
,Message
, and related structures. - Renamed fields in the stats structure for clarity and documented changes.
- Added GoDocs for various input and output structs.
- Updated the README.md with information about delay queues, visibility timeout, and a revised Data Transition diagram.
- Documented the
ClientImpl
struct andClientOptions
in detail.
Refactoring and Structural Changes
- Refactored various output structs (
RedriveMessageOutput
,MoveMessageToDLQOutput
,ChangeMessageVisibilityOutput
,SendMessageOutput
) to include generic types and renamed specific fields for clarity. - Changed the scope of the
client
struct to public and renamed it toClientImpl
. - Moved default constant values to the
internal/constant
package for better organization. - Changed timestamp attribute names for improved clarity.
Fixes and Style Adjustments
- Removed unnecessary
VisibilityTimeout
inRedriveMessageInput
. - Fixed the
go test
command to includetee
forresult.json
output in continuous integration settings. - Addressed an issue with unnecessary trailing newlines and applied
goimports
tomessage_test.go
for code styling.
Full Changelog: v0.10.1...v0.11.0