# Orbit GraphQL

**What?**

1. Deploy it in front of GraphQL API, and it will start caching all requests passing through it.
2. Your cache gets automatically invalidated if anything changes in your application
3. Queries are only sent to origin if there is a cache MISS

**Wait, why is it needed?**

Because all GraphQL requests are on a single endpoint (usually `POST`) and resources are differentiated based on what your request body looks like, we can't use HTTP caching methods for them (say goodbye to etags, 304s, cache-control etc.)

Currently the ecosystem solves for the problem in two ways, client side cache or a server side cache.

Clients like [urql](https://github.com/urql-graphql/urql) can cache your API responses on the client side. Services like [Stellate](https://stellate.co/) act as a cache proxy that does the same thing on the server side.

Orbit GraphQL is an open-source alternative to a tool like Stellate (server side cache for your GraphQL API).

{% hint style="warning" %}
This project is not ready for production traffic yet, but hopefully it will be soon (if you [help](https://github.com/nshntarora/orbitgraphql))
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.orbitgraphql.com/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
