4 ms·
Do you happen to know what sort of thinking leads a team down this path? It seems a fundamental mistake. Resume driven development?
by konradb 6y ago
Do you happen to know what sort of thinking leads a team down this path? It seems a fundamental mistake. Resume driven development?
- afarrell 6y agoInsufficient asking "why?" 1. Why do we want to use Kafka? [insert thinking] So that we can do x yet avoid y. 2. Why is the customer asking for these features? [insert listening] So that they can do z and think of themselves as w. And then failure to remember and revisit that "why?".
- derrekl 6y agoMy hypothesis: it’s hard to have a descent grasp of technologies without having actually used it. Tie that with “let’s not include too many moving parts” and it’s easy to end up in a situation where the edict is “Kafka”. Let’s say you have never used RDBMS, only used rethinkdb and that turned out to be problematic for whatever reason, next project the founder hires you on the premise that the system you build needs to scale to billions of requests per minute ASAP (eventhough currently there is 0 traffic).
- steve_adams_86 6y agoEven though currently there is zero traffic is exactly right. Haha. When this company finally did get customers, the thing they thought would help them manage thousands of high volume customers ended up making it so they could barely retain a few very low volume customers.
- derrekl 6y agoYea, I agree. Having the endgame solution in place at the beginning is often a mistake and can actually foil your ability to get to the end game.
- steve_adams_86 6y agoI'll admit, I only recognized that mistake because I've made it myself, over and over. It's hard to push code knowing it'll need improvements later, or knowing how scopes will change. I find myself repeating "perfect is the enemy of good" because I struggle to just let a solution be good enough. It's tough to be consulted and watch people go against your advice like that, though.
- fomine3 6y agoSometimes I'm annoying is that It seems that some cloud services (I imagine Firebase) only provides endgame solution for datastore.
- steve_adams_86 6y agoIn this case the application was commissioned by the founder, and the people developing it were given errant criteria (and not given other valid criteria) which admittedly made Kafka sound like it would make sense. The developers who adopted the commissioned application were way too inexperienced to know one way or another, and by the time I was asked to help out, no one had really learned anything about Kafka. My suggestions to replace it with a basic queue were rejected and my suggestions to store events in a database for easier recollection were rejected. They were sure learning Kafka better would fix everything instead. Ironically there's not even that much to learn about it, in the scheme of things. It's like learning more about your car so you can make it fly one day. It's just not the right tool for the job.
- JamesBarney 6y agoIn addition to what others have answered, I think many devs consistently underestimate the amount of heavy lifting that relational databases do. And even worse a lot of this heavy lifting isn't obvious until you are fairly far into a project and suddenly realize that to solve a bug you need to implement transactions or referential integrity.
- commandlinefan 6y agoNot just Kafka, either. Mongo, Cassandra, couchbase, Redis, SOLR and elastic search are all mistaken as replacements for an RDBMS.
- 411111111111111 6y agoCassandra can replace an rdbms in a lot of cases if eventual consistency works for your data. It's not a drop in replacement though, that's for sure.
- commandlinefan 6y agoBetter than the other suggestions, but my experience is that you run into Cassandra's limitations really quick: you can't query on non-primary columns, and you can't join tables without pulling all the data down to the client and merge manually.
- 411111111111111 6y ago> can't query on non-primary columns, That's incorrect unless I'm misunderstanding what you mean with primary columns.. It's just not as efficient. And missing joins are by design and one of the reasons cassandra is as fast as it is. And as I said before: it's not a drop in replacement. You need to architect your application around it's strength to leverage it's performance. It is however usable as a rdbms replacement if you know what you're doing and your data is fine with eventual consistency. And knowing what cassandra does with your data is important as well. It's actually a key-value store on steroids. Once you get that, it's limitations and strengths become obvious
- capkutay 6y agoFirst - you decide to build your data platforms with apache kafka. makes sense as it's a very widely used, durable message bus that does the job well. Then...you decide to attend a kafka developer conference like Kafka Summit to sharpen your skills and learn best practices. At that conference, you see the CEO of Confluent give a keynote speech about how Kafka is a transaction store; you 'turn your database inside out', run SQL queries on it, even run your BI dashboards on top of it! They make it seem like this is a best practice that all the smartest engineers are doing, so you better do it as well. At that point you're investing in a path that will make Confluent millions in revenue trying to consult you on implementing their experimental, up-sell architecture on top of Kafka. Maybe their sales rep will suggest you to buy a $100k/month subscription to Confluent Cloud to really patch up any holes and make it easier to maintain. Moral of the story is doing your best to separate out the business and the tech side of open source. Behind many open source projects, there's a company trying to make money on an 'enterprise' version. Ethically, I prefer data companies like Snowflake that are at least transparent about trying to make money off their product. Rather than companies that use open source as a ladder to drive adoption, then try to bait-and-switch you into the same 7-figure deals with software that is more brittle and still requires you to develop your own solutions with it.
- dwoot 6y agoI think this is worth mentioning again: https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb