AI / LangGraph LangChain Interview questions
What is the difference between sequential and parallel chains?
In a sequential chain, components run one after another: the output of step N becomes the input of step N+1. This is the default LCEL pipe behaviour — chain = step1 | step2 | step3 means step2 cannot start until step1 finishes.
In a parallel chain, multiple branches run concurrently on the same input, and their results are merged into a single dict. LangChain implements this with RunnableParallel:
from langchain_core.runnables import RunnableParallel, RunnablePassthrough from langchain_openai import ChatOpenAI from langchain_core.output_parsers import StrOutputParser llm = ChatOpenAI() parallel_chain = RunnableParallel( summary=summary_prompt | llm | StrOutputParser(), sentiment=sentiment_prompt | llm | StrOutputParser(), keywords=keywords_prompt | llm | StrOutputParser(), ) # Runs all three LLM calls concurrently, then returns: # {"summary": "...", "sentiment": "...", "keywords": "..."} result = parallel_chain.invoke({"text": "LangChain is amazing..."})
Use sequential chains when each step depends on the previous result. Use parallel chains when steps are independent of each other — this reduces wall-clock time to the slowest branch's latency rather than the sum of all branches.
More Related questions...