zlacker

Understanding Kafka with Factorio (2019)

submitted by pul+(OP) on 2021-11-22 09:13:51 | 133 points 72 comments
[view article] [source] [go to bottom]

NOTE: showing posts with links only show all posts
4. ronenl+Geb[view] [source] 2021-11-26 05:05:01
>>pul+(OP)
Here’s the HN discussion for Bartosz Milewski’s analysis of Factorio, where he shows functional counterparts in Haskell of Factorio’s patterns:

https://news.ycombinator.com/item?id=26157969

https://news.ycombinator.com/item?id=29299140

8. geodel+nkb[view] [source] 2021-11-26 06:34:22
>>pul+(OP)
Must be something about Kafka to attract these kind of explanations. Another one few months back was a children's book on Kafka [1] . For me it just look like solution looking for actual problems.

I wonder if Kafka represents an existential angst in these Kubernetized Microservice times. Or is it more simply I am just too dumb to learn and use this shit correctly.

1. https://news.ycombinator.com/item?id=27541339

◧◩
13. buzer+iob[view] [source] [discussion] 2021-11-26 07:45:58
>>solmag+Uib
There was a post about that in HN a while back. https://news.ycombinator.com/item?id=26591966
22. tr33ho+Ivb[view] [source] 2021-11-26 09:25:11
>>pul+(OP)
If anyone is starting a new project, I'd recommend looking into Apache Pulsar [0]. It has all the good parts of Kafka with a lot more features useful when scaling

0: https://pulsar.apache.org/

23. sohkam+Fwb[view] [source] 2021-11-26 09:35:53
>>pul+(OP)
I presume the percentage of HN user who know this is about Apache Kafka is higher than the percentage that think this is about Franz Kafka. :-)

Related HN discussion of this [1]

[1] https://news.ycombinator.com/item?id=29296969

◧◩
39. kitd+1Ib[view] [source] [discussion] 2021-11-26 11:55:19
>>beebma+3Cb
I have found clients based on librdkafka [1] or sarama [2] to be pretty robust and capable. For SSL, librdkafka relies heavily on OpenSSL which can cause a few headaches IME. But the rest is straightforward.

[1] https://github.com/edenhill/librdkafka [2] https://github.com/Shopify/sarama

◧◩◪◨⬒⬓⬔
41. KptMar+sKb[view] [source] [discussion] 2021-11-26 12:17:08
>>lmm+lFb
That's seriously one of the worst takes I've seen on this website.

>the attempt to charge is recorded in a leger

Hint: how do you think this attempt is recorded and fulfilled? Or, do you think "it's just appended" and bank recalculates your balance from scratch every time you spend 1$ on coke can?

Only bank I've heard of that's not using traditional relational database for ledger is Monzo [1] - but they still use Cassandra's transactions.

[1] https://www.scaleyourapp.com/an-insight-into-the-backend-inf...

◧◩◪◨
51. berkes+NTb[view] [source] [discussion] 2021-11-26 13:49:20
>>benjam+eqb
Some alternatives are:

* Just keep your architecture a monolith. You'll do fine the majority of the cases.

* Event-sourcing doesn't require Kafka clusters. Nor do event-driven setups. You don't need complex tooling to pass around strings/json-blurps. An S3 bucket or a Postgresql database storing "Events-as-json" is often fine.

* Postgres can do most of what you need (except for the "webscale" clustering etc)[0] in practice already.

* Redis[1]

My main point is that while Kafka is a fantastic tool, you don't need that tool to achieve what you want in many cases.

> It seems as good a way as any to decouple systems

IMO relying on a tool to achieve a good software design, rather than design-patterns, is a recipe for trouble. If anything, because it locks you in (do you suddenly get a tightly coupled system if you remove Kafka?) or because its details force you into directions that don't naturally fit your domain or problem.

--

[0] https://spin.atomicobject.com/2021/02/04/redis-postgresql/ [1] https://redis.com/redis-best-practices/communication-pattern... etc.

◧◩◪
62. incogn+zmc[view] [source] [discussion] 2021-11-26 17:04:33
>>solmag+qNb
I'll just leave this here:

https://twitter.com/lizthegrey/status/1464109933390036996

[go to top]