diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-10-14 18:08:13 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-10-14 18:08:13 -0700 |
| commit | e8d6c2bf692dbcb4c503caa676314a6a626a8a68 (patch) | |
| tree | 101c6492ad403a28b32e6a40a632924243360c90 /docs/ref/proto/pull.md | |
| parent | 356969c4e401fe3caa48d1c1c75f51fba24ebdab (diff) | |
| download | nng-e8d6c2bf692dbcb4c503caa676314a6a626a8a68.tar.gz nng-e8d6c2bf692dbcb4c503caa676314a6a626a8a68.tar.bz2 nng-e8d6c2bf692dbcb4c503caa676314a6a626a8a68.zip | |
Converted protocols to mdbook.
Started an introductory section too.
Diffstat (limited to 'docs/ref/proto/pull.md')
| -rw-r--r-- | docs/ref/proto/pull.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/ref/proto/pull.md b/docs/ref/proto/pull.md new file mode 100644 index 00000000..9946a887 --- /dev/null +++ b/docs/ref/proto/pull.md @@ -0,0 +1,40 @@ +# PULL protocol + +The {{i:*PULL* protocol}}{{hi:*PULL*}} is one half of a +{{i:pipeline pattern}}. +The other half is the [_PUSH_][push] protocol. + +In the pipeline pattern, pushers distribute messages to pullers. +Each message sent +by a pusher will be sent to one of its peer pullers, +chosen in a round-robin fashion +from the set of connected peers available for receiving. +This property makes this pattern useful in {{i:load-balancing}} scenarios. + +### Socket Operations + +The [`nng_pull0_open`][nng_pull_open] functions create a +_PULL_ socket. +This socket may be used to receive messages, but is unable to send them. +Attempts to send messages will result in `NNG_ENOTSUP`. + +When receiving messages, the _PULL_ protocol accepts messages as +they arrive from peers. +If two peers both have a message ready, the +order in which messages are handled is undefined. + +### Protocol Versions + +Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.) + +### Protocol Options + +The _PULL_ protocol has no protocol-specific options. + +### Protocol Headers + +The _PULL_ protocol has no protocol-specific headers. + +[nng_pull_open]: TODO.md +[push]: ./push.md |
