summaryrefslogtreecommitdiff
path: root/doc/sequence-diagrams/request-response.seq
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sequence-diagrams/request-response.seq')
-rw-r--r--doc/sequence-diagrams/request-response.seq22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/sequence-diagrams/request-response.seq b/doc/sequence-diagrams/request-response.seq
new file mode 100644
index 0000000..9baca21
--- /dev/null
+++ b/doc/sequence-diagrams/request-response.seq
@@ -0,0 +1,22 @@
+title Nickserver Request-Response-Sequence
+
+Client-->Server: Request
+Server->*Responder: new
+Server->*Dispatcher: new(responder)
+Server->Dispatcher: respond_to(params, headers)
+# Dispatcher->*Request: new(params, headers)
+Dispatcher->*HandlerA: call(request)
+# HandlerA->Request: params
+# Request->HandlerA: address: 'mail@domain'
+note right of HandlerA: not responsible
+HandlerA-->Dispatcher: nil
+destroy HandlerA
+Dispatcher->*HandlerB: call(request)
+note right of HandlerB: responsible\nquery source and build response
+HandlerB-->Dispatcher: reponse
+destroy HandlerB
+Dispatcher->Responder: send_response(response)
+# destroy Request
+destroy Dispatcher
+Responder-->Client: Response
+destroy Responder