This post is ranty but hopefully taken in the in the spirit in which it's intended, which is mostly in jest. But I really do seek to clarify the reasoning behind the use of the term "sink" for subscribing to publishers.
When we name things, we often use terms that intuitively convey an abstraction. I assume that's what "sink" is intended to do, but I can't for the life of me figure it out. I can't even figure out if it's intended to be a noun or a verb.
Like a lot of people, I often look at code examples to figure things out. Most operator names make perfect sense, and I can infer what they're doing. But when I see
sink, the last thing I think of is "Oh, that's where the actual subscription occurs." It almost seems like an intentional obfuscation. It might as well be called
So I watch videos on combine, and the narrator nonchalantly mentions that we subscribe to publishers by calling
sink (naturally!), as if it's a totally obvious name for such an operation. Am I crazy? Is everyone else crazy?
Seriously though, I suspect the name has some reasonable origin, and the actual purpose of this post is to figure that out. If the answer is something like "the term was originally used in a research paper written in the early nineties first detailing the FRP approach..." I'll be a bit disappointed that it managed to make its way into the public API.