# Prerequisites

## Kafka versions <a href="#kafka-versions" id="kafka-versions"></a>

Any version of Apache Kafka (2.0 or newer) on-premise and on-cloud.

## Schema Registry <a href="#kafka-versions" id="kafka-versions"></a>

Any version of Confluent Schema Registry (5.5.0 or newer), APICurio (2.0 or newer) and AWS Glue.

## JMX connectivity <a href="#jmx-connectivity" id="jmx-connectivity"></a>

Connectivity to JMX is optional (not required) but recommended for additional/enhanced monitoring of the Kafka Brokers and Connect Workers. Secure JMX connections are also supported, as well as JOLOKIA and OpenMetrics (MSK).

For more enable JMX for Lenses itself see [here](https://github.com/lensesio-dev/docs/blob/master/deployment/prepare-your-environment/jmx-metrics.md).

## Hardware & OS <a href="#hardware--os" id="hardware--os"></a>

Run on any Linux server (review ulimits or container technology (docker/kubernetes). For RHEL 6.x and CentOS 6.x use docker.

Linux machines typically have a soft limit of 1024 open file descriptors. Check your current limit with the `ulimit` command:

```bash
ulimit -S -n     # soft limit
ulimit -H -n     # hard limit
```

Increase as a super-user the soft limit to 4096 with:

```bash
ulimit -S -n 4096
```

Use 6GB RAM/4 CPUs and 500MB disk space.

## Memory & CPU

This is the default configuration = Request `1` CPU & Memory `3Gi`, Limit 2 CPU & Memory `5Gi`

## Browser <a href="#browser" id="browser"></a>

All recent versions of major browsers are fully supported.

### APIs and Websockets <a href="#apis-and-websockets" id="apis-and-websockets"></a>

Every action in Lenses is backed by an API or websocket, documented at [https://api.lenses.io](https://api.lenses.io/). A Golang client is available and CLI (command line interface).

{% hint style="info" %}
For websockets you may need to adjust your loadbalancer to allow them. See [here](https://github.com/lensesio-dev/docs/blob/master/deployment/prepare-your-environment/networking-with-load-balancers.md).
{% endhint %}

## Lenses state store <a href="#lenses-state-store" id="lenses-state-store"></a>

Lenses can use an embedded H2 database or a [Postgres database](https://github.com/lensesio-dev/docs/blob/master/deployment/prepare-your-environment/lenses-metadata-database.md). Postgres is not supplied by Lenses.

## TLS termination <a href="#tls-termination" id="tls-termination"></a>

By default, Lenses does not provide TLS termination but can be enabled via a configuration option. TLS termination is recommended for enhanced security and a prerequisite for integrating with SSO (Single Sign On) via SAML2.0.

TLS termination can be configured directly within Lenses or by using a TLS proxy or load balancer. Refer to the TLS [documentation ](https://github.com/lensesio-dev/docs/blob/master/deployment/prepare-your-environment/enable-tls-on-lenses.md)for additional information.


---

# 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.lenses.io/latest/devx/5.5/getting-started/connections/prerequisites.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.
