See https://gist.github.com/arfon/a79777b68dc512c06043 for general API discussion. Also, Arfon has a PDF file outlining our whiteboard design for this API.
Overall vision for the realtime research API:
- Refactor Ouroboros to allow support for subject retiring, assignment (including client side), and custom interface commands.
- Find an appropriate project for CrowdSynth or engagement-style experiments. Design interface tweaks, messaging, and other interventions into the project.
- Subscriber gets access key to experiment on users for a given project. Access has certain limits such as max percentage of users, and time limit (2 months) etc.
- Subscriber listens to Kafka stream (using DB replication library) for users coming online.
- Subscriber sends a user request command (with possible time demand) to API when an interesting user comes online. API responds with either 200 (OK) or 403 (denied). If OK, these users are available for sending commands.
- Control of users via commands is available for the spe