Add initial version of ladder diagram for Push Notifications (#86)

This commit is contained in:
Pedro Pombeiro 2018-04-13 19:34:24 +02:00
parent 31835c31af
commit 926de35936
No known key found for this signature in database
GPG Key ID: C4A24185B2AA48A1
2 changed files with 37 additions and 0 deletions

View File

@ -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 doesnt 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. We also want a solution that doesnt 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 ### 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: 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:

View File

@ -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"] }
}