The document contains a series of one-line statements by Pieter Hintjens about software architecture and distributed systems. Some of the key points made include that software needs to be designed to connect to other code and last for decades; distributed systems live or die by their communication protocols; and that MQ provides a framework for building distributed protocols and applications. The statements cover a range of topics from software design, distributed systems, security and ZeroMQ in particular.
27. An unprotocol
takes minutes
to explain,
hours to
design, days to
write, weeks to
prove, months
to mature, and
years to
replace
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
28. Use human nom-protocol =
open-peering
language *use-peering
in your open-peering =
unprotocols. C:OHAI
( S:OHAI-OK / S:WTF )
use-peering =
ORLY? C:ICANHAZ
YARLY! / S:CHEEZBURGER
/ C:HUGZ S:HUGZ-OK
/ S:HUGZ C:HUGZ-OK
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
29. Use GPLv3
for your
open specs.
Remixability
is freedom
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
30. If you're
willing to
give up
flexibility for
speed you
deserve
neither
flexibility nor
speed
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
31. Use cheap
text for the
low-volume
chatty
control
commands
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
40. No matter C: fetch
how hard S: chunk 1
you push, a S: chunk 2
file will not S: chunk 3
just go down
a socket
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
41. That C: fetch chunk 1
annoying S: send chunk 1
pause after C: fetch chunk 2
S: send chunk 2
you finish
C: fetch chunk 3
your beer, S: send chunk 3
before you C: fetch chunk 4
catch the
waiter's eye
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
42. You can, C: fetch chunk 1
and I've C: fetch chunk 2
tested this, C: fetch chunk 3
S: send chunk 1
order a new
C: fetch chunk 4
beer before S: send chunk 2
your old one S: send chunk 3
is empty
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
43. Request- C: subscribe
reply is just C: send credit
a vulgar S: send chunk
S: send chunk
subclass of
C: send credit
publish- S: send chunk
subscribe
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
44. On a router
socket, you
should
never hit the
high-water
mark
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
54. Theory is
fine in
theory, but
in practice,
practice is
better
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
55. FileMQ is a
file sharing
protocol and
stack over
MQ.
Reusable
until 2062
Photos by Pieter Hintjens
cc-by-sa 息 2012 Pieter Hintjens
56. 1. Aim for 50 years
To sum it up: 2. It's all about people
3. Minimal plausible solutions
zero.mq/ch6 4. To real immediate problems
5. Document the contracts
6. Cheap and Nasty codecs
The Weird 7. Code generation rocks
Fish Book, 8. Router sockets rock
coming soon 9. CBFC > HWM
from O'Reilly 10. Learn state machines
11. Learn about SASL
Photos by Pieter Hintjens
12. Worked example: FileMQ
cc-by-sa 息 2012 Pieter Hintjens