> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# One-endpoint / three-protocols model

> How e6data exposes one authenticated endpoint speaking gRPC, HTTP REST, and the PostgreSQL wire protocol, with routing by cluster name.

Your tools connect over TLS to a single e6data endpoint. You name the cluster you want to query - you never address individual nodes - and e6data routes the request. Cluster upgrades and waking a suspended cluster happen automatically, with no change to your connection.

## The three protocols

| Protocol | What it is | Best for |
| - | - | - |
| **Native driver (gRPC)** | The e6data [JDBC](/query/connect/jdbc) and ODBC drivers and the [Python connector](/query/connect/python) - the richest feature set | SQL IDEs, Java/Python apps, notebooks |
| **HTTP REST v2** | A language-agnostic, firewall-friendly HTTPS API - authenticate, submit, poll, page | Integrations in any language ([REST API](/query/connect/rest-api-for-sql)) |
| **PostgreSQL wire** | Point a stock PostgreSQL client straight at e6data, nothing to download | Tableau, pgAdmin, psql, DBeaver ([PostgreSQL protocol](/query/connect/postgresql-protocol)) |

All three are behind one endpoint and run against the same cluster.

## Routing and concepts

* **Cluster name** is the routing key - supplied as a header on gRPC/HTTP, or encoded in the database name (`<CLUSTER>/<CATALOG>`) on the Postgres path.
* **Catalog and schema** select what you query.
* **TLS is always on.** The first query to a suspended cluster auto-resumes it (\~30–90 s) - HTTP requests wait for the resume; Postgres clients receive a `57P03` retry signal.

## Operational notes

* **HTTP/2 is required** for the gRPC and HTTP paths - use an HTTP/2-capable client and don't force curl's `--http2` flag.
* **Upgrades are transparent** - your connection string never changes.
* On the HTTP path, **reuse sessions** via `X-Session-Id` while polling and paging, and call `clearOrCancel` when finished.

## See also

* [Connecting to the engine](/query/connect)
* [JDBC](/query/connect/jdbc) · [PostgreSQL protocol](/query/connect/postgresql-protocol) · [REST API for SQL queries](/query/connect/rest-api-for-sql)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.