Alephant::Sequencer
Using DynamoDB consistent read to enforce message order from SQS.
Installation
Add this line to your application's Gemfile:
gem 'alephant-sequencer'
And then execute:
$ bundle
Or install it yourself as:
$ gem install alephant-sequencer
Usage
require 'alephant-sequencer'
#Optional JSONPath specifying location of sequence_id
sequence_id = '$.sequence_number'
sequencer = Sequencer.create(table_name, sqs_queue_url, sequence_id)
# Data from SQS message
data = Struct.new(:body).new({:sequence_number => 3})
# Sets last seen id
sequencer.set_last_seen(data)
# Gets last seen id
sequencer.get_last_seen
# => 3
# Is the message sequential?
sequencer.sequential?(data)
# Reset sequence
sequencer.delete!
## Contributing
1. Fork it ( http://github.com/<my-github-username>/alephant-sequencer/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request