Alephant::Sequencer

Using DynamoDB consistent read to enforce message order from SQS.

Build
Status

Gem Version

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