News for hackers. Stuff that matters.
Re:Twitter’s Kafka adoption story by capkutay on Thursday November 29, 2018 @04:14PM (#18564081)
I'm curious if there's some conflicting, underlying motives from their senior level technology folks.

They had a game changing tool in Apache Storm...once Nathan Marz (creator of Storm) left twitter, another senior engineer took over that group and created his OWN variant of Twitter Storm called Heron. After much engineering PR and github fanfare [0], couple years later he leaves to start his own company to do 'enterprise heron' [1].

So is the goal here to use something that works well for their end-users? Or is it to create a shiny new tool that they can spin off into a new company?

0: https://news.ycombinator.com/item?id=11770758

1: https://architecht.io/streamlio-founders-on-why-the-world-ne...

Re:Twitter’s Kafka adoption story by fnbr on Thursday November 29, 2018 @04:33PM (#18564246)
The joke that I've heard is "performance (review) driven development".

If the way to get promoted is to launch a shiny new product, then your most senior people will be the best at finding shiny new products to launch, even if that's not the right technical decision to make.

Re:Twitter’s Kafka adoption story by Benjammer on Friday November 30, 2018 @01:41PM (#18571397)
"Oh but our senior engineers would _never_ make such a selfish choice to make themselves look better at the expense of the company, everyone here _believes_ in the mission."
Re:Twitter’s Kafka adoption story by blackaspen on Thursday November 29, 2018 @05:49PM (#18564899)
"Promobird" and "Promobird V2" (and so on).
Re:Twitter’s Kafka adoption story by yxhuvud on Friday November 30, 2018 @11:18AM (#18570134)
Closely related to CV driven development.
Re:Twitter’s Kafka adoption story by snaky on Thursday November 29, 2018 @04:57PM (#18564495)
There is resume driven development for blue collar coders masses. But this needs its' own name.
Re:Twitter’s Kafka adoption story by abalone on Thursday November 29, 2018 @11:49PM (#18566771)
Speaking of underlying motives... you strongly imply that Heron was not a significant improvement on Storm and doesn’t “work well for end users.” Without evidence. Why?

Re: motives,

“Heron grew out of real concerns Twitter was having with its large deployment of Storm topologies. These included difficulties with profiling and reasoning about Storm workers when scaled at the data level and at a topology level, the static nature of resource allocation in comparison to a system that runs on Mesos or YARN, lack of back-pressure support, and more.”

“Although Twitter could have adopted Apache Spark or Apache Flink, that would have involved rewriting all of Twitter's existing code.”[1]

[1] https://www.infoworld.com/article/3078134/analytics/had-it-w...

Re:Twitter’s Kafka adoption story by capkutay on Friday November 30, 2018 @08:12PM (#18574310)
i never said it doesn't work well for end users.

I just question the intentions when they do a huge PR campaign for an internal project...then the leader of that project leaves to start his own company shortly after.

And no...more PR about heron is not going to convince me that 'it's a huge improvement over Kafka'. Kafka has massive adoption, and almost no Kafka users I've come across have expressed a burning desire for Heron or Pulsar.

Re:Twitter’s Kafka adoption story by manigandham on Thursday November 29, 2018 @05:02PM (#18564523)
Streamlio is at least working on Apache Pulsar, which is a much better alternative to Kafka.
Re:Twitter’s Kafka adoption story by Joeri on Friday November 30, 2018 @02:20AM (#18567360)
I’m interested in pulsar but also wary of it. On paper it sounds like an amazing system, the benefits of kafka without the downsides. But if it is that good, why isn’t it used more?
Re:Twitter’s Kafka adoption story by manigandham on Friday November 30, 2018 @10:38AM (#18569816)
Because it's new. Kafka has more momentum with more clients and integrations. Pulsar/Streamlio definitely needs better marketing.
Re:Twitter’s Kafka adoption story by dominotw on Thursday November 29, 2018 @07:47PM (#18565639)
better?
Re:Twitter’s Kafka adoption story by manigandham on Thursday November 29, 2018 @08:58PM (#18565967)
Yes, in basically every way. The website has a good overview unless you have specific questions:

https://pulsar.apache.org/docs/en/concepts-overview/

Re:Twitter’s Kafka adoption story by kasey_junk on Thursday November 29, 2018 @09:34PM (#18566130)
I really like Pulsar and it definitely has overlap for some use cases with Kafka but its important to understand that they are 2 different kinds of systems.

Pulsar is a classic Pub/Sub system. It offers persistence but the basic concepts are what you'd find in most any Pub/Sub system.

Kafka is a distributed log (data structure, not tracing) system. Its basic concepts are what you would expect around something that is persisting events. In many ways its better to think about Kafka as an event datastore and not a messaging system.

In particular, Kafka is much better in use cases where you want to provide all events to many different consumers on their own time frames, over and over again. Use cases like building distributed caches and replication formats will likely fit Kafka better than Pulsar.

Also, Kafka has much higher industry adoption. You are much more likely to have third party support for Kafka than for Pulsar. Also each has a seperate Apache project dependency. Zookeeper has... warts, but they are well known and operating Zookeeper clusters is a much more common skillset than operating BookKeeper.

Again, I really like Pulsar but claiming it is better in basically every way is just false.

Re:Twitter’s Kafka adoption story by manigandham on Thursday November 29, 2018 @09:59PM (#18566263)
I don't see the differences that you list. Both systems produce and subscribe to named topics, with multiple consumers which can read and re-read at their own pace, with data sharded by key to scale, and configurable retention.

Pub/sub is the interface to the underlying log storage in both, and you can layer an event sourcing, service bus, CEP, MQ, or any other messaging buzzword on top.

However, Pulsar goes further than Kafka. It supports millions of topics, multi-tenant namespacing, more consumer options (exclusive, shared/group), per-message acknowledgements instead of a single offset, non-persistent topics for broadcast or ephemeral messaging, geo-replication, tiering to cloud storage (useful for that event store), and a functions platform for lightweight processing. Pulsar also uses Zookeeper for coordination and has official Kubernetes deployments for easy operations.

You're right that Kafka has much wider industry usage, and perhaps that is a significant advantage for most, but the constant announcement of yet another suite of helper tools by every major company only seems to show that it's not quite polished. Other than community and integrations marketshare, I cannot think of any functional area where Kafka is better than Pulsar. Can you name any?

Re:Twitter’s Kafka adoption story by kasey_junk on Thursday November 29, 2018 @10:57PM (#18566541)
Actually, I hadn't used Pulsar since they added the reader interface or Kafka wrappers. It likely now does support the event store use cases it didn't previously. Very cool.

The additional requirement of BookKeeper then is the only major technical negative I see, leaving the market share argument as the major negative. I think saying that Kafka has a lot of helper tools being a negative is pretty unfair though. Pulsar has such lower adoption that there just isn't the rationale for creating the helper tools. That shouldn't be used as metric to decide which is more polished.

Re:Twitter’s Kafka adoption story by manigandham on Friday November 30, 2018 @12:08PM (#18570512)
Most of the tools seem to do the same thing while they would be unneeded for Pulsar so I'm going by that. But yes, Kafka has a much bigger community which is probably what most users want.
Re:Twitter’s Kafka adoption story by tgrez on Friday November 30, 2018 @09:48AM (#18569448)
Pulsar doesn't support transactions e.g. producing to multiple topics/partitions atomically.

So, you cannot have exactly-once delivery consuming from a topic and producing to another topic. Kafka starting from 0.11 supports this.

Re:Twitter’s Kafka adoption story by refset on Sunday December 02, 2018 @11:43AM (#18583032)
Isn't that what Pulsar Functions are designed for? https://streaml.io/blog/pulsar-functions

This presentation compares the Pulsar Function approach against Kafka's 2PC: https://www.slideshare.net/merlimat/effectivelyonce-semantic...

Re:Twitter’s Kafka adoption story by tgrez on Tuesday December 11, 2018 @09:49AM (#18655599)
Pulsar Functions appears to be a stream processing engine similar to Flink or Kafka Streams. In other words, it is more like a runtime for streaming apps.

The relation Pulsar ~ Pulsar Functions appears similar to Kafka ~ Kafka Streams. One is a message broker, the other a streaming engine.

Exactly-once (or effectively-once) in Pulsar Functions is depended on assigning unique sequence ids on the producer side. When consuming from Pulsar topic those can be taken from the consumed message, but AFAIK Pulsar doesn't assign those unique ids on its own, so it needs to be done externally.

Re:Twitter’s Kafka adoption story by manigandham on Saturday December 01, 2018 @12:42AM (#18575423)
That's true. KSQL is another thing that Kafka wins at, which makes a pretty smooth experience for straightforward stream processing and general management over the command line tools.

Pulsar is working on Presto integration for querying which should be interesting.

Re:Twitter’s Kafka adoption story by gaius on Friday November 30, 2018 @03:02AM (#18567515)
Pulsar is a classic Pub/Sub system. ... Kafka is a distributed log

This is true but I’ll wager that 99% of real world deployments of Kafka are in the simple pubsub use case. Most people just aren’t operating at LinkedIn scale or complexity.