What LangChain is
LangChain is an MIT licensed Python and JavaScript framework for building LLM applications, with LangGraph for stateful agent graphs and LangSmith as a commercial observability product. Its integration surface is the widest in the ecosystem, and its documentation is where most engineers meet these concepts for the first time.
This is a library versus platform question
EDDI is not a competing framework. EDDI uses LangChain4j, the Java sibling of LangChain, internally. The real question is not which abstraction is better, it is who builds and owns everything that surrounds it: the REST layer, authentication, tenancy, state, audit, and the interface non-developers use.
What you build versus what you deploy
| Dimension | LangChain / LangGraph | EDDI |
|---|---|---|
| Form factor | A library imported into your application | Deployable middleware; runs wherever Docker runs |
| Orchestration logic | Python or TypeScript in your repository | JSON configuration, changed without redeployment |
| REST API and routing | You build it | Included, plus OpenAPI 3.1, A2A protocol, and SSE streaming |
| Authentication and RBAC | You build it | OIDC/Keycloak with admin, editor, and viewer roles |
| Non-developer interface | You build it | EDDI Manager, a production React UI in 11 languages |
| Secret management | You build it, or bring a vault | Built-in AES-256-GCM Secrets Vault with rotation |
| Observability | LangSmith (commercial) or your own instrumentation | Prometheus metrics and auto-provisioned Grafana dashboards |
| Audit and compliance | You build it | Immutable HMAC-SHA256 ledger, data subject rights API, 15+ frameworks |
| Iteration loop | Change code, review, test, deploy | Change configuration in the UI or API; effective immediately |
| Ceiling on control | None. Anything expressible in code is available | Bounded by what configuration can express, by design |
Choosing between them
Where LangChain is the better choice
- The orchestration itself is your competitive advantage and belongs in your codebase, not in a config store.
- You need control flow that declarative configuration cannot express: custom graph topologies, bespoke retry semantics, unusual state machines.
- You are a Python shop and want the agent to live inside an existing service rather than beside it.
- You need a brand-new integration the week it appears. LangChain moves faster than any platform can.
- The team is one or two engineers, with no compliance officer, no tenancy requirement, and no non-developer who needs access.
Where EDDI is the better choice
- You recognise the Day 2 operations list as work your team is doing instead of shipping product.
- Prompt engineers and operations staff need to change agent behavior without a pull request.
- Several teams or customers share one deployment and need isolation, quotas, and cost attribution.
- Procurement wants an answer on audit trails, data residency, and framework coverage before anything ships.
- You want the orchestration layer to be a dependency you upgrade, not a codebase you maintain.
Moving an application from LangChain
The logic usually survives; the surrounding infrastructure is what you stop maintaining. Work outward from the chain definition.
| LangChain | EDDI |
|---|---|
| Chain or LangGraph graph | EDDI pipeline configuration |
| Tools and function calling | MCP tool definitions or httpCall declarations |
| Memory classes | Persistent user memory, rolling summaries, and dream consolidation |
| Retriever and vector store setup | RAG configuration across 8 embedding providers and 6 vector stores |
| Prompt templates | Versioned prompt snippets, referenced by name |
| FastAPI wrapper | Built-in REST API, OpenAPI 3.1, and SSE streaming |
| LangSmith tracing | Prometheus metrics, Grafana dashboards, and the immutable audit ledger |
Frequently asked
Does EDDI use LangChain?
EDDI uses LangChain4j, the Java implementation, internally. This is not a competing abstraction. EDDI is the deployable platform built around that kind of library, providing the API layer, authentication, state management, management UI, and compliance infrastructure that a library deliberately leaves to you.
What is the Day 2 operations gap?
Day 1 is getting an agent to respond correctly, which a library handles well. Day 2 is everything after: authentication, multi-tenancy, conversation state across restarts, audit logging, secret rotation, horizontal scaling, cost tracking, and an interface for people who do not write Python. Teams routinely spend more time on Day 2 than on the agent itself.
Is configuration less powerful than code?
Yes, and that trade is deliberate. Configuration cannot express everything code can. In exchange you get changes without redeployment, behavior that non-engineers can review, and no runtime code execution to defend in a security review. If you need the ceiling that code provides, use the library.
Can we keep LangChain and still use EDDI?
Yes. EDDI exposes an MCP server and a REST API, so a LangChain application can call EDDI agents as tools, and EDDI can call your LangChain service through httpCall. Splitting along the line of what is differentiated versus what is infrastructure is a reasonable design.
Other comparisons
Ready for production?
Get managed deployment, SLA-backed support, and hands-on help from the team that builds EDDI.
Talk to us about enterprise deployment