Skip to main content


This page contains a list with brief descriptions of the nouns used in Pathom.

EQL Request

EQL is the main interface to communicate with Pathom, with EQL you describe the shape of the response data you need, and Pathom uses its engine to realize the data. EQL syntax also supports the calling of mutations that enables a layer of side effects to be invoked in a request.


Most maps returned by Pathom are considered entities, but not all of them. When you make a request and ask for specific keys of a map, that's an entity, but there are some opaque maps (from Pathom perspective), in these cases they are not entities.


The primary building block of Pathom data resolution, resolvers represent edges on the graph of data traversing, they always provide at least one attribute, and usually have some input requirement.


Mutations are the write side of Pathom. They provide entry points to run some operation that usually does some side effects.


The parent type of Resolvers and Mutations. The common trait they share is that both have a map containing configuration data.

Cache Store

Pathom uses caches all over the place and provides a way to the user to implement custom behavior on how this caching works.


The planner is a critical part of Pathom 3. The planner is the algorithm core of the system, it receives the context of the request and produces a data structure with instructions of how to execute which functions in which order to resolve the user demand.


The runner starts from a plan produced by the planner and go about executing it.

Smart Maps

Smart Maps provide an alternative interface to use the Pathom system that doesn't depend on the EQL. Smart maps are less efficient than using EQL, but are handy when you want to enable the resolution power of Pathom integrated with the simple interface of Clojure maps.