Skip to content

Architecture Overview

Luke Baker edited this page Sep 18, 2015 · 5 revisions

Components

The primary components required for All Our Ideas are the following:

  • Pairwise application server
  • MySQL server
  • redis server
  • delayed_job workers
  • All Our Ideas application server

Pairwise server

The All Our Ideas server relies on the pairwise application server to do most of the heavy lifting involved with pairwise comparisons. The All Our Ideas server needs to know what URL to access the pairwise application server and what username and password to use. These settings are done in the API_HOST PAIRWISE_USERNAME PAIRWISE_PASSWORD settings in config/config.yml Likewise the pairwse application needs to be configured to allow access from the username and password that the All Our Ideas server is configured with.

MySQL Server

All Our Ideas is a typical Rails application with a MySQL server configured in config/database.yml

Redis Server

The redis server is used by A/Bingo.

Delayed job workers

The delayed job workers for both pairwise and All Our Ideas run in the background periodically checking the queue in the database for jobs that need to be completed. These workers send out emails as well as some of the long running computations like exporting CSV files. The workers should always be running for a production environment. It's probably a good idea to monitor their status with something like monit to ensure they continue to run.