# Dev Requirements

{% tabs %}
{% tab title="Java / Scala" %}

## Prerequisites&#x20;

### Stream Connectors

* Java  11
* Scala 2.12.11
* Apache Flink 1.17.2
* Apache Kafka 2.8.1

### Batch Connectors

* Java 11
* Scala  2.12.11
* Apache Spark 3.5.1
* Apache Kafka 2.8.1

## Libraries

Make sure you have the necessary repositories for the development

```sh
git clone git@github.com:Sunbird-Obsrv/job-sdk-scala.git
git clone git@github.com:Sunbird-Obsrv/connector-sdk-scala.git
```

### Setup

1. `job-sdk-scala`

```
cd job-sdk-scala
mvn clean install
```

2. `connector-sdk-scala`

```
cd connector-sdk-scala
mvn clean install
```

## Adding Dependencies

### Stream Connectors

Add the following to your project's `pom.xml` file under dependencies

{% code title="pom.xml" %}

```xml
<dependencies>
    ...
        <dependency>
            <groupId>org.sunbird.obsrv.connector</groupId>
            <artifactId>connector-sdk-flink</artifactId>
            <version>1.0.0</version>
        </dependency>
    ...
</dependencies>
```

{% endcode %}

### Batch Connectors

Add the following to your project's `pom.xml` file under dependencies

{% code title="pom.xml" %}

```xml
<dependencies>
    ...
        <dependency>
            <groupId>org.sunbird.obsrv.connector</groupId>
            <artifactId>connector-sdk-spark</artifactId>
            <version>1.0.0</version>
        </dependency>
    ...
</dependencies>
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}

## Prerequisites&#x20;

* Python 3.10 or higher
* Kafka 2.8.1
* Spark (PySpark) 3.5.1

## Required Packages

The `obsrv` python package is distributed through PyPI repository and can be installed using pip

```bash
pip install "obsrv[batch]"
```

### Using Poetry for Dependency Management

{% hint style="info" %}
`Poetry` is recommended for its ease of managing and packaging
{% endhint %}

[Poetry](https://python-poetry.org) is a popular tool for dependency management and packaging in Python projects. It streamlines the process of installing and updating project dependencies. To get started with Poetry, first install it using the following command

```bash
pip install poetry
```

Once installed, you can create a new Poetry project:

```bash
poetry new your_project_name
```

To add dependencies to your project, such as the `obsrv` package, use:

```bash
poetry add "obsrv[batch]"
```

Poetry automatically creates and manages a virtual environment for your project, ensuring isolated dependencies and compatibility management.
{% endtab %}
{% endtabs %}


---

# 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://obsrv.sunbird.org/guides/connectors-developer-guide/dev-requirements.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.
