# Overview

Benchmark various popular queue system to see what works best for our
accounting run needs.

## Requirements

- Reliably pipe 200-500M transactions through our system once a month.
- No introduction of breaking changes from month to month.

## Benchmarking Strategy

- Push 200M messages through each queue system.
- Python3.4 scripts populate the queues.
- PHP Consumers consume from the queues in a similar way as in the monolith.
- Transaction analytics are collected to help identify the best solutions.
- Continue to iterate on our approach.

## Technologies Used

- activemq
- rabbitmq
- redis
- sqs

## Assumptions

- The queues will be running on the same host as the publishers and consumer
- tests will ve created with 1,000,000 transactions

## Configuration

> $ cp conf.yml.sample conf.yml

## Running Publishers

> $ cd src/Publishers

> $ source .env/bin/activate

> $ python main.py {activemq|rabbitmq|redis|sqs}

## Running Consumers

> $ cd src/Consumers

> $ php main.php {activemq|rabbitmq|redis|sqs}
