forked from onyx-platform/onyx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
messenger.cljc
43 lines (37 loc) · 1.28 KB
/
messenger.cljc
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
34
35
36
37
38
39
40
41
42
43
(ns onyx.messaging.protocols.messenger)
(defmulti assign-task-resources
(fn [replica peer-id job-id task-id peer-site peer-sites]
(:onyx.messaging/impl (:messaging replica))))
(defmulti get-peer-site
(fn [peer-config]
(:onyx.messaging/impl peer-config)))
(defmulti build-messenger-group
(fn [peer-config]
(:onyx.messaging/impl peer-config)))
(defmulti build-messenger
(fn [peer-config messenger-group monitoring id task->grouping-fn]
(:onyx.messaging/impl peer-config)))
(defprotocol MessengerGroup
(peer-site [messenger-group peer-id]))
(defprotocol Messenger
(start [messenger])
(stop [messenger])
(id [messenger])
(info [messenger])
(update-subscriber [messenger sub-info])
(update-publishers [messenger pub-infos])
(publishers [messenger])
(task->publishers [messenger])
(subscriber [messenger])
(poll [messenger])
(poll-heartbeats [messenger])
(offer-heartbeats [messenger])
(offer-barrier [messenger publication]
[messenger publication barrier-opts]
[messenger publication barrier-opts endpoint-epoch])
(unblock-subscriber! [messenger])
(replica-version [messenger])
(set-replica-version! [messenger replica-version])
(next-epoch! [messenger])
(set-epoch! [messenger epoch])
(epoch [messenger]))