diff --git a/ideas/086-push-notif-v2/README.md b/ideas/086-push-notif-v2/README.md index 4333bc9..5e9d5f7 100644 --- a/ideas/086-push-notif-v2/README.md +++ b/ideas/086-push-notif-v2/README.md @@ -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: diff --git a/ideas/086-push-notif-v2/diagram.dot b/ideas/086-push-notif-v2/diagram.dot new file mode 100644 index 0000000..45e4e0b --- /dev/null +++ b/ideas/086-push-notif-v2/diagram.dot @@ -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"] } + } \ No newline at end of file