aws / aws/aws-activejob-sqs-ruby

Processing Events

Open
#21 21 comments 1 reaction 0 assignees View on GitHub
feature-request needs-triage
Dominant language
Ruby
Stars
37
Forks
10
Avg merge
18h 57m
Merged PRs (30d)
1

Description

### Describe the feature

This gem works great for processing messages enqueued by the application. However one of the great features of SQS is the ability to listen to events from SNS (or other sources).

We currently are handling this by moving events into lambda functions, but we would like to stop using lambda for this.

Before i start, looking for some feedback or suggestions.

### Use Case

This gem doesn't provide a clear way on how to process these items. Specifically we have an application comprised of 7 rails services each emitting events and processing them in other services. For example the account service may emit an event when an a new account has been created, another service may listen to this event and do something.

### Proposed Solution

Im working on a fork for us to use which will allow something like:

Config:
```
queues:
production_default_queue:
url: 'https://sqs.us-east-1.amazonaws.com/000000000/production-default-queue'
production_external_event_queue:
url: 'https://sqs.us-east-1.amazonaws.com/000000000/production-external-events-queue' # Subscribed to some SNS topic
handler: MyEventJob
```

Job:
```
class MyEventJob
def perform
do_stuff(@event)
end
end
```

### Other Information

_No response_

### Acknowledgements

- [x] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### SDK version used

latest

### Environment details (OS name and version, etc.)

all

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the gem’s existing SQS message-processing path, then compare it with the proposed queues configuration and MyEventJob shape. The issue names no files or tests; done would require an agreed approach for processing SNS-originated events and its implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, ruby
Domain
backend, cloud, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.