aws / aws/aws-activejob-sqs-ruby
Processing Events
- 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
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