News for hackers. Stuff that matters.
Re:Kafka Is Dead, Long Live Kafka by benjaminwootton on Monday August 07, 2023 @03:05PM (#37039215)
I’m not sure how anyone can hate Kafka? It does what it says on the tin - move data from A to B with publish/subscribe semantics.

It’s quite easy to just use it as a dumb message broker with no retention if that’s all you need but if you do want to do something funky with persistence then go down that route.

I’m not sure how anyone could have a negative feeling towards a vanilla, but rock solid and wildly popular open source tool. If they do then it will be about some niche feature or use case.

I actually think this message reflects badly on the vendor here. Criticise or compete with Kafka on its technical merits if you like, but this is just a misrepresentation of their position in the market.

Re:Kafka Is Dead, Long Live Kafka by richieartoul on Monday August 07, 2023 @03:39PM (#37039836)
(WarpStream co-founder)

I'm not sure what you mean. Message persistence is a fundamental feature of Kafka that almost everyone using it relies on, its not some esoteric feature no one uses. We're each coming from our own network bias here, but in my experience a lot of people are really unhappy with the operational toil associated with running Kafka at scale in production.

Re:Kafka Is Dead, Long Live Kafka by benjaminwootton on Monday August 07, 2023 @11:48PM (#37044288)
Yes it’s fundamental, but it’s not generally that significant to users of Kafka.

As a developer, Kafka is a place to publish and subscribe to data with reliability and performance.

As a developer, the fact that messages are persistent is nothing more than a cool feature in that I can replay messages if I need to.

Things like consumer groups and offsets are features of the API, but they aren’t complex. Every similar tool whether it be RabbitMQ or IBM MQ has its own API abstractions and features. Likewise, I need to learn about failover semantics, but that’s the same with any API dependency.

It seems that you and the other posters here have a concensus that it’s hard to operate. Rather than saying that Kafka is dead or a polarising technology, a better line of argument is that it’s simply hard or expensive to operate at scale. (I personally think that’s par for the course with a technology like this, but that’s an aside.)

You have to remember that for everyone operating Kafka, there will be on average tens or hundreds of developers using it. And the vast, vast majority of those will not find it to be particularly polarising. Instead, they’ll find it a de-facto choice.

Re:Kafka Is Dead, Long Live Kafka by deanCommie on Monday August 07, 2023 @03:49PM (#37039973)
Easy: I hate how complex it is, compared to something much simpler like https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQS...
Re:Kafka Is Dead, Long Live Kafka by mdaniel on Monday August 07, 2023 @04:05PM (#37040229)
> I’m not sure how anyone can hate Kafka?

My experience has been that such a question has two implied audiences in it: those who consume Kafka and those who have to keep the PoS alive and healthy

The whole ambiguity around whether ZK is really still needed or not <https://kafka.apache.org/documentation/#zk> makes keeping two distributed systems alive and healthy, but don't worry you can't move your production clusters off of it anyway <https://kafka.apache.org/documentation/#kraft_zk_migration>. It's a mess

Re:Kafka Is Dead, Long Live Kafka by EdwardDiego on Monday August 07, 2023 @05:43PM (#37041375)
ZooKeeper is rock solid. Moving off it is a mistake, IMO.

My tinfoil hat theory is that the whole impetus for KRaft is Confluent Cloud's multi-tenanted clusters have so many partitions that it starts to exceed ZK's capacities, so Confluent have built KRaft for Confluent.

And yeah, the migration approach is nutso. Also very annoying, the KRaft metadata topics being changed to be super-secret for... ...some good reason, I'm sure.

But it entirely removes the ability to respond to changed cluster metadata that you have with ZK, where you can watch znodes.

I'm not at all a fan tbh.

Re:Kafka Is Dead, Long Live Kafka by jitl on Monday August 07, 2023 @09:11PM (#37043185)
> ZooKeeper is rock solid

lol. lmao. never falls over or causes incidents, in the same way c is rock solid and never SIGSEGV or causes security problems

Re:Kafka Is Dead, Long Live Kafka by mdaniel on Monday August 07, 2023 @10:27PM (#37043733)
Some people say "well, it could be worse" but my go-to version is "at least it's not fucking etcd"
Re:Kafka Is Dead, Long Live Kafka by reissbaker on Monday August 07, 2023 @10:43PM (#37043857)
This thread is an excellent example of the author's point: Kafka is polarizing.

Personally, in my experience with Kafka and Zookeeper at Airbnb back in the day (we also used ZK for general-purpose service discovery), they both were... temperamental. They'd chug along just fine for a bit, seemingly handling outages that e.g. RDS would have thrown a fit over, and then suddenly they'd be cataclysmically down in extremely complicated ways and be very difficult to bring back up. Even just using them required teaching a more complex mental model than most cloud-hosted offerings of similar things, and you ended up in this path dependency trap of "we already invested so much in Kafka, so if you want to send a message, use Kafka" when for like 95+% of use cases something easy like SQS would've been fine and simpler. TBQH I don't think either Kafka or ZK ever quite paid back their operational overhead cost, and personally I wouldn't recommend using either unless you absolutely need to.

Warpstream looks really cool in that light!

Re:Kafka Is Dead, Long Live Kafka by EdwardDiego on Monday August 07, 2023 @11:32PM (#37044196)
Fair, that's just been in my experience. It's still better than KRaft though.
Re:Kafka Is Dead, Long Live Kafka by linsomniac on Tuesday August 08, 2023 @12:01AM (#37044368)
>ZooKeeper is rock solid

That has not been my experience. I've been running several small cluster (3 and 5 node) Confluent packaged for the last 3 years, and zookeeper ~20 times has gotten into this state where a node isn't in the cluster, and the way to "fix" it is to restart the current leader node. Usually I have to play "whack-a-mole" until I've restarted enough leaders that it comes up. Sometimes I've not been able to get the node back into the cluster without shutting down the whole cluster and restarting it.

Once it's running it's fine, until updates are done. But this getting into a weird state sure doesn't sit well with me.

Re:Kafka Is Dead, Long Live Kafka by jandrewrogers on Tuesday August 08, 2023 @12:40AM (#37044566)
> ZooKeeper is rock solid. Moving off it is a mistake, IMO.

I’m agnostic about Kafka but ZooKeeper is problematic for many use cases based on personal experience and I wouldn’t recommend it. It can be “rock solid” and still not very good. I’ve seen ZK replaced with alternatives at a few different organizations now because it didn’t work well in practice, and what it was replaced with worked much better in every case.

ZooKeeper works, sort of, but I wouldn’t call it “good” in some objective sense.

Re:Kafka Is Dead, Long Live Kafka by dikei on Tuesday August 08, 2023 @02:50AM (#37045402)
To be fair, a lot of people use ZK wrong, then complaint about it.

For example, if you use it like a general purpose KV store like Redis, you'll have a bad time.

Another often encountered mistake is people, thinking it doesn't need to store much data, deploy ZK to a server with slow disk/network. Big mistake, as every write to ZK need to be broadcasted and synced to disk, a bottle-neck in disk and network IOPS will kill your ensembles.

Re:Kafka Is Dead, Long Live Kafka by morelisp on Tuesday August 08, 2023 @07:31AM (#37047385)
This has also been my experience when I saw unreliable ZKs; they're sharing the OS, ZK, and maybe even some other services on the same disk, and sometimes they're even running software RAID or something on top of that.

I don't think teams who can't run ZK will have much luck running other distributed systems. (Maybe KRaft, if they're Kafka experts.) Most of the alternatives proposed here have been "let someone else run the hard part." (Which isn't a bad choice, but it's not technically a solution.)

Re:Kafka Is Dead, Long Live Kafka by physicles on Tuesday August 08, 2023 @04:14AM (#37045992)
Not my experience at all.

We’ve been running a 3 node cluster for several years, and a significant minority of the times I’ve been paged is because ZK got into a bad state that was fixed by a restart (what bad state exactly? Don’t know, don’t care, don’t have two spare weeks to spend figuring it out). Note that we have proper liveness checks on individual instances, so the issue is more complicated than that.

Migrated to 3.3 with KRaft about half a year ago, and we haven’t had a single issue since. It just runs and we resize the disks from time to time.

Re:Kafka Is Dead, Long Live Kafka by mdaniel on Tuesday August 08, 2023 @11:23AM (#37050373)
> Migrated to 3.3 with KRaft about half a year ago

Did you follow their migration guide, or did you just rebuild the cluster and then using KRaft? I didn't know how "migration" was used in that context

Re:Kafka Is Dead, Long Live Kafka by physicles on Sunday August 13, 2023 @06:50AM (#37108662)
We built a new cluster and very carefully rolled over our producers and consumers. It wasn’t simple, but it’s possible to do without downtime.
Re:Kafka Is Dead, Long Live Kafka by twelve40 on Monday August 07, 2023 @09:41PM (#37043411)
i work at a place that has a whole devops department maintaining it (so not even my pain), and i still hate how overengineered the overall system ended up, it's more busywork programming for it, debugging it, etc. No reason not to use sqs or rabbit or whatever unless you have a very special use case, or begin to hit X messages/second. Or just like to spend lots of time writing boilerplate and configuring.