What is the difference between a query, a mutation and a subscription?
Assesses fundamental understanding of GraphQL conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
- Query: a read operation. Queries can run in parallel and must be side-effect free.
- Mutation: a write operation that changes server state. Top-level mutation fields run serially, so
createOrdercompletes beforechargeOrderstarts, while nested selections may still resolve concurrently. - Subscription: a long-lived stream over WebSocket or a similar transport that pushes events to the client when the server publishes them.
mutation {
createOrder(input: { sku: "A1", qty: 2 }) { id }
}
Queries and mutations share the same schema and resolver model. A common mistake is putting writes in a query and losing the serial execution guarantee. Another is assuming mutations give transactional atomicity across fields: they are only sequential, so partial failure must be handled explicitly with error payloads or rollbacks at the service layer.
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.