Skip to content
Keyvan Fatehi edited this page Jul 6, 2013 · 3 revisions

Architecture Overview

http://cl.ly/image/3i411Z0B421y

Technology Overview

  • Node.js
  • Ruby / Python / C++ / C / Erlang
  • MongoDB
  • RabbitMQ

Tasks driven api that adds tasks to a channel that get processed by a worker and then added to a data processing channel to be save to the MongoDB collection for consumption by vendors

We need a logging api that tracks the doe-eye-api usage per vendor.

Workers subscribe to channels

Node API publishes to a channel

For big payloads we will create a (GridFS) record in mongodb and reference the payload id in the rabbitmq task so that the worker can getch the payload from mongodb.

Task will be encrypted when being added to the channel on RabbitMQ

Tasks

Basic API to add messages to a channel on RabbitMQ

Basic Worker to process messages on a channel to MongoDB

When RabbitMQ reaches a certain capacity we must know in order to scale up with more instances. It would be nice if this were automated... I would want the same for the hardware and openstack scaling... export PATH="/usr/local/opt/rabbitmq/sbin:$PATH"

Clone this wiki locally