QuantRocket Architectural Overview

QuantRocket runs as a suite of Docker containers which can be deployed on your home trading computer or in the cloud provider of your choice.

Docker containers are lightweight, standalone pieces of software that include all the code and dependencies needed to run. Because they are self-contained, a key benefit of Docker containers is that they can run anywhere: under Linux, Mac, or Windows, in the cloud or on your laptop. If you've ever struggled to install code libraries on your computer, you'll appreciate Docker.

QuantRocket consists of numerous Docker containers working in tandem. Each container is a miniature app whose job is to do one thing and do it well. This design pattern is known as a "microservices" pattern and it promotes highly flexible applications.

QuantRocket containers or "services" and their functions are shown below:

service/containerwhat it does
mastercreates and manages the securities master database
historycollects, stores, and manages historical price data
fundamentalcollects, stores, and manages fundamental data
realtimecollects, stores, and manages real-time data
jupyterruns a JupyterLab environment
moonshotruns Moonshot
ziplineruns Zipline
houstonAPI gateway through which services communicate with each other, and you with them
license-serviceretrieves your QuantRocket subscription details for permission validation
ibgruns IB Gateway
launchpadstarts and stops IB Gateway service(s)
codeloadloads your code and configuration and makes them available to other services
dbloads your databases and makes them available to other services
flightlogemits log messages to tell you what's happening (for example, historical data retrieval is complete)
logspoutemits detailed, technical log messages
accountkeeps track of your IB balances and base currency exchange rates
blottersubmits orders to IB and records trade executions
countdownruns a cron service to let you schedule jobs

See the video below for a visual depiction of QuantRocket's multi-container design.