By RJ Marcus on April 12, 2015.
To ensure our system is thoroughly tested in a real-world environment, we create our worker pool on AMT. In order to take advantage of AMT's existing resources, we interface with it using an extensive python library called Crowdlib, written by Dr Alexander J. Quinn. This allows for an easy and safe way to generate HITs
Upon loading, our webserver will check how many existing HITs have been posted on AMT, and automatically generate new ones if a minimum number is not met. Additionally, whenever a worker logs in to our site, we generate a new HIT if our Worker Manager decides that it needs more workers. A worker only needs to take one HIT per "session", because they will stay inside that HIT's iframe on AMT, but they are completing multiple HITs on the local Tidal server. We decided that this would help improve the workflow on our site so workers had to do less page navigation.
A running total of the number of local HITs completed and total amount earned is always present in the corner of the worker's screen. The worker's pay accumulates as bonuses since they are technically only performing one HIT on AMT. This total is automatically saved to disk after each interaction with a worker in case the server crashes. The worker can logout at any time with the logout button, which will end their Tidal session, and generate a payout for the original HIT on AMT.
We hope that the idea of performing multiple HITs without immediate payment doesn't scare away too many workers. A tutorial hit will be required of each worker the first time they log in to our site which will explain how Tidal works and what it is. Hopefully this tutorial will help workers get a better understanding of what we're doing and encourage them to come back.