Why do developers criticize frameworks like Langchain, LlamaIndex and Haystack?

I’ve come across quite a few negative remarks regarding these well-known AI frameworks, and I’m curious about the particular problems they have. I’m in the process of launching a new project that involves creating a RAG application, and these frameworks appear to be popular choices.

From what I’ve learned, Langchain is used for connecting LLM calls, LlamaIndex specializes in document indexing and retrieval, and Haystack offers complete NLP pipelines. They seem quite beneficial.

Nonetheless, I’ve observed that seasoned developers often suggest creating custom solutions over relying on these frameworks. Some claim they introduce excessive complexity or have performance drawbacks. Others point out issues with documentation or frequent updates that break functionality.

Could someone clarify what the primary disadvantages are? I want to make a well-informed choice before I decide to use any of these tools for my project.

The dependency hell alone should scare you off. These frameworks drag in massive dependency chains that constantly conflict. I wasted three days last month fixing version conflicts between LlamaIndex and basic data processing libraries. Error handling is even worse. Forget clear, actionable messages - you get cryptic stack traces pointing to internal framework code you never wrote. Try explaining to your client why everything crashed because some abstraction layer broke. Memory usage? Brutal. We had a simple document Q&A app with Haystack eating 4GB RAM while doing nothing. Rebuilt it with direct API calls and vector operations - now it runs on 512MB. These frameworks look tempting when you’re starting out, but they turn into technical debt fast. Every business requirement that doesn’t match their rigid opinions becomes an engineering nightmare.

These frameworks are a nightmare. I’ve used all three in production and they’ll drive you insane.

Langchain is the worst. You spend more time fighting their abstractions than building anything useful. Their API changes constantly break your code - I’ve watched teams burn weeks just staying current.

LlamaIndex focuses better but still over-engineers everything. Simple document retrieval becomes needlessly complex.

Haystack tries doing everything, so it sucks at everything. Steep learning curve for mediocre performance.

They all force their way of doing things on you. Need customization? You’re screwed - you’ll spend forever working around their limits instead of solving your problem.

I ditched heavyweight AI frameworks completely. Now I just automate my exact workflow with Latenode. Chain API calls to different LLM providers, process documents, manage vector databases, build custom retrieval - zero framework bloat.

Built a RAG system last month for customer support docs. Instead of wrestling Langchain, I used Latenode to chunk documents, generate embeddings through OpenAI, store in Pinecone, and handle retrieval with custom scoring. Runs faster and debugs easier.

Skip the frameworks and automate exactly what you need: https://latenode.com

The biggest problem is vendor lock-in dressed up as convenience. Once you’re in, switching becomes a nightmare.

Found this out the hard way when we had to swap embedding models. Should’ve been a quick API change but we ended up rewriting half our pipeline because of Langchain’s structure.

Deployment is another mess nobody talks about. These frameworks drag in huge dependency trees. Docker images hit gigabytes. Cold starts crawl. Your ops team will want your head.

Testing sucks too. Mocking their tangled internals for unit tests is like doing surgery with oven mitts.

Here’s the thing - most RAG apps need maybe 3-4 operations. Document chunking, embedding generation, vector search, response synthesis. These frameworks dump 100+ features you’ll never use.

I ditched them after building a RAG system for legal docs. Instead of fighting framework limits, I automated our exact workflow with Latenode. Direct API calls to embedding services, custom chunking, vector database ops, LLM queries. No bloat, no abstractions.

Debugging got easy. Performance jumped 3x. Team moved twice as fast since we weren’t learning framework weirdness constantly.

Build what your project actually needs: https://latenode.com

I’ve been using these frameworks for two years now, and the criticism makes sense once you get past the basic tutorials. The biggest issue? Abstraction overhead. They pile on layers between your code and the actual LLM APIs, which makes debugging a nightmare. When things break, you’re stuck troubleshooting their messy internal logic instead of fixing your actual business code. Don’t get me started on documentation - it’s all over the place. Langchain’s the worst offender here. Examples from six months ago? Completely useless now. They prioritize pumping out new features over keeping things stable. Performance takes a hit too. Sure, they’re convenient, but that convenience costs you latency. At scale with thousands of requests, those extra milliseconds really add up. Look, they’re not completely terrible. Great for prototyping and quick proof-of-concepts where speed matters more than polish. Problems start when your project outgrows how the framework thinks you should build things.

totally agree! these frameworks make simple things way too complicated. langchain is especially bad with its big chain objects. u spend ages debugging and then bam, an update breaks everything. it’s a mess, honestly. just keep it simple and stick to what works for you!

Honestly, the hype around these frameworks is just marketing noise. I tried Haystack last year and it’s bloated as hell - takes forever to load and eats memory like crazy. Their updates constantly break things while fixing other stuff. I ended up building my own solution with basic OpenAI calls and Pinecone. Works way better and I actually understand what’s happening under the hood.