Skip to content
This repository has been archived by the owner on Nov 5, 2021. It is now read-only.

Commit

Permalink
Add initial version of ladder diagram for Push Notifications (#86)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pedro Pombeiro committed Apr 13, 2018
1 parent 31835c3 commit 926de35
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ideas/086-push-notif-v2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ We want to end up with a notification system which works on as many devices as p
We also want a solution that doesn’t involve talking directly to the notification provider, as that would require keeping authentication elements embedded in the app (currently the case), and might expose us to quota theft.

### Flow Diagram

![Alt text](https://g.gravizo.com/source/svg?https%3A%2F%2Fraw.githubusercontent.com%2Fstatus-im%2Fideas%2Fmaster%2Fideas%2F086-push-notif-v2%2Fdiagram.dot)

### Goals

At a high-level, we want to move up the current solution a notch regarding some of the critical qualities mentioned in the [Product Overview](#product-overview) which are currently lagging behind. The specific steps to reach that goal are:
Expand Down
33 changes: 33 additions & 0 deletions ideas/086-push-notif-v2/diagram.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
digraph ladder {
ranksep=".5"; nodesep="1"; splines="line";

node [shape=point fontsize=10];
edge [dir=none fontsize=10];

// Column labels
a [shape=Square label="Contact A"];
w [shape=Square label="Notification Server"];
b [shape=Square label="Contact B"];

// Draw the 3 column headings, no line
{ rank=same; edge[style=invis] a -> w -> b }

// Draw the columns
a -> a1 [style=dotted weight=1000];
w -> w1 [style=dotted];
b -> b1 [style=dotted weight=1000];

a1 -> a2 -> a3 -> a4 -> a5 [weight=1000];
a3 [xlabel="Contact A wants\nto send a message\nto Contact B" weight=1000];
w1 -> w2 -> w3 -> w4 -> w5 [weight=1000];
b1 -> b2 -> b3 -> b4 -> b5 [weight=1000];

// Now each step in the ladder
{ rank=same; a1 -> w1 [dir=forward label="Requests topic\nfor notifications\nto Contact B"] }
{ rank=same; a2 -> w2 [dir=back label="Replies with its Whisper topic"] }
{ rank=same;
w3 [shape=none style=invis width=0 height=0 label=""]
a3 -> w3;
w3 -> b3 [dir=forward label="Sends message\nwith agreed topic"] }
{ rank=same; a4 -> w4 [dir=forward label="Sends message using topic received"] }
}

0 comments on commit 926de35

Please sign in to comment.