Hacker News new | ask | show | jobs
by dln_eintr 3479 days ago
The name doesn't really work in this project's favor.

UNIX pipes are stream interfaces, whereas this looks to be message based - that's a fundamental difference.

Named pipes are uniquely identified in a well-defined local namespace, i.e the filesystem, whereas this seems to be an abstraction on top of Kafka with service discovery TBD.

This confused me while reading up on the project.

2 comments

AF_UNIX on linux supports SOCK_DGRAM and SOCK_SEQPACKET in addition to SOCK_STREAM, so having message based interfaces won't be much of a change for some users.

SOCK_DGRAM at least appears to be widely supported (FreeBSD & Illumos & OpenBSD). SOCK_SEQPACKET is at least supported by OpenBSD (I'm going by what's in various docs/man pages).

How is it a fundamental difference? Unix streams are character messages, so this is basically a superset of that functionality.

(I don't know much about Unix streams, so correct me if I'm wrong.)

Generally when a protocol is referred to as message-based it's because there's some framing around the payload. This can make it impractical as compared to a streaming protocol that just passes data back in forth. In some real-time cases, you can't tolerate the latency of waiting to bundle multiple items in a single payload but you also can't tolerate the overhead of framing many small messages.