Kong / Kong/lua-resty-aws

SNS SDK appears outdated

Open
#134 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Lua
Stars
35
Forks
28
PR merge metrics
No merged PRs in 30d

Description

Hi,

I noticed the SNS client doesn't include the FIFO related member fields in the input to the publish method.

E.g. they are defined in the JS SDK: https://github.com/aws/aws-sdk-js/blob/966fa6c316dbb11ca9277564ff7120e6b16467f4/apis/sns-2010-03-31.normal.json#L2330

```
"MessageDeduplicationId": {
"shape": "String",
"documentation": "

This parameter applies only to FIFO (first-in-first-out) topics.

The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular MessageDeduplicationId is sent successfully, subsequent messages with the same MessageDeduplicationId are accepted successfully but aren't delivered.

  • Every message must have a unique MessageDeduplicationId.

    • You may provide a MessageDeduplicationId explicitly.

    • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your topic, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

    • If you don't provide a MessageDeduplicationId and the topic doesn't have ContentBasedDeduplication set, the action fails with an error.

    • If the topic has a ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

  • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

  • If you send one message with ContentBasedDeduplication enabled, and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

The MessageDeduplicationId is available to the consumer of the message (this can be useful for troubleshooting delivery issues).

If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SNS can't detect duplicate messages.

Amazon SNS continues to keep track of the message deduplication ID even after the message is received and deleted.

The length of MessageDeduplicationId is 128 characters.

MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

"
},
"MessageGroupId": {
"shape": "String",
"documentation": "

This parameter applies only to FIFO (first-in-first-out) topics.

The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single topic, use MessageGroupId values (for example, session data for multiple users). In this scenario, multiple consumers can process the topic, but the session data of each user is processed in a FIFO fashion.

You must associate a non-empty MessageGroupId with a message. If you don't provide a MessageGroupId, the action fails.

The length of MessageGroupId is 128 characters.

MessageGroupId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

MessageGroupId is required for FIFO topics. You can't use it for standard topics.

"
}
```

But they are not usable while using lua-resty-ws, even though AWS has added this functionality years ago.

Seems like the APIs need to be regenerated or something?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the lua-resty-aws SNS client’s Publish input definition and compare its accepted fields with the AWS SNS API linked in the issue. The work is done when FIFO topics can use MessageDeduplicationId and MessageGroupId through the client, with validation that the Publish input accepts both fields.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, lua
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.