summaryrefslogtreecommitdiff
path: root/distributedpubsub_dot.dot
blob: 54f4e856d65252309601f6677b7c4c1c22146620 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
digraph basicpubsub {
    graph [margin=0.10];
    overlap=scale;
    rankdir=LR;

    subgraph cluster_publishers {
        graph [label="Publishers"];

        {node [shape=record, label="{ 1 | { <interests> Interests | <queue> Message queue } }"] pub1};
        {node [shape=record, label="{ 2 | { <interests> Interests | <queue> Message queue } }"] pub2};
        {node [shape=record, label="{ 3 | { <interests> Interests | <queue> Message queue } }"] pub3};

        pub3->pub2 [style=invis];
        pub2->pub1 [style=invis];

        subgraph {
            rank=same; pub1; pub2; pub3;
        }
    }

    subgraph cluster_subscribers {
        graph [label="Subscribers"];

        {node [shape="record", label="{ <queue> Message queue | 1 }"] sub1};
        {node [shape="record", label="{ <queue> Message queue | 2 }"] sub2};
        {node [shape="record", label="{ <queue> Message queue | 3 }"] sub3};
    }

    sub1->pub1:interests [label="register"];

    pub2:queue->sub2:queue [label="deliver(event A)"];
    pub2:queue->sub3:queue [label="deliver(event A)"];
}