Skip to content

Commit

Permalink
fixes bug 1389463 - create architecture diagram using dot
Browse files Browse the repository at this point in the history
This redoes the architecture diagram using graphviz and dot notation. It's not
the bestest thing in the world, but it's editable without additional tools and
it seems good for now.
  • Loading branch information
willkg committed Oct 11, 2017
1 parent 72f0257 commit e79011c
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 3 deletions.
4 changes: 3 additions & 1 deletion docs/conf.py
Expand Up @@ -28,7 +28,9 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []
extensions = [
'sphinx.ext.graphviz'
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Expand Down
53 changes: 51 additions & 2 deletions docs/gettingstarted.rst
Expand Up @@ -242,13 +242,62 @@ environment, put it in ``my.env``.
General architecture
====================

.. graphviz::

digraph G {
rankdir=LR;

client [shape=box3d, label="firefox"];

subgraph antpig {
rank=same;

antenna [shape=rect, label="antenna"];
pigeon [shape=cds, label="pigeon"];
}

subgraph stores {
rank=same;

aws [shape=tab, label="S3", style=filled, fillcolor=gray];
postgres [shape=tab, label="Postgres", style=filled, fillcolor=gray];
elasticsearch [shape=tab, label="Elasticsearch", style=filled, fillcolor=gray];
telemetry [shape=tab, label="Telemetry (S3)", style=filled, fillcolor=gray];
rabbitmq [shape=tab, label="RMQ", style=filled, fillcolor=gray];
}

subgraph processing {
rank=same;

processor [shape=rect, label="processor"];
crontabber [shape=rect, label="crontabber"];
}

webapp [shape=rect, label="webapp"];

client -> antenna [label="HTTP"];
antenna -> aws [label="save raw"];

aws -> pigeon [label="S3:PutObject"];
pigeon -> rabbitmq [label="crash id for processing"];

rabbitmq -> processor [label="crash id"];
aws -> processor [label="load raw"];
processor -> { aws, postgres, elasticsearch, telemetry } [label="save processed"];

postgres -> webapp;
aws -> webapp [label="load raw,processed"];
elasticsearch -> webapp [label="search"];

{ rank=min; client; }
}


.. Warning::

August 17th, 2017. Everything below this point needs to be updated.


.. image:: block-diagram.png

Arrows direction represents the flow of interesting information (crashes,
authentication assertions, cached values), not trivia like acks.

Expand Down

0 comments on commit e79011c

Please sign in to comment.