> For the complete documentation index, see [llms.txt](https://docs.streambased.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.streambased.io/deploy-and-operate/streambased-platform/hyperstream/architecture.md).

# Architecture

Hyperstream (I.S.K. acceleration service) exposes a REST API that can be used by any client. To accelerate queries clients will submit their queries to an enrichment endpoint that will add additional clauses that are informed by index information.

<figure><img src="/files/WcVAgBMzhsBMLkWQyC6R" alt=""><figcaption></figcaption></figure>

A typical flow may look like this:

1. The client submits a put request to create an index over a given table for a given table field:

   ```properties
   PUT /api/index
   {
     "topic": "customers"
     "field": "Name"
   }
   ```
2.

```
Next the created index is used to enrich an analytical query
```

````
```properties
POST /api/enrich
{
  "sql" : "SELECT * FROM customers WHERE Name = 'Judith Gottlieb'"
}
```

returns:

```properties
{
  "originalSql" : "SELECT * FROM customers WHERE Name = 'Judith Gottlieb'"
  "enrichedSql" : "SELECT * FROM (SELECT *  FROM customers WHERE (( kafka_partition = 0 AND kafka_offset >= 334000 AND kafka_offset < 335000)) OR  (( kafka_partition = 0 AND kafka_offset >= 999999 )))  WHERE Name = 'Judith Gottlieb'"
}
```
````

3\. Analytical clients can then execute this enriched query and benefit from dramtically increased performance (30x - 100x is common).
