Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AUTO: Docs repo sync - ScalarDL #583

Merged
merged 2 commits into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
181 changes: 181 additions & 0 deletions docs/requirements.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# Requirements

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

This page describes the required tools and their versions to use ScalarDL correctly.

## Client SDK

Because ScalarDL is written in Java, the easiest way to interact with ScalarDL is to use the [Java client SDK](getting-started.mdx#download-the-client-sdk).

### Java

The following Java Development Kits (JDKs) are verified and supported:

- **[Oracle JDK](https://www.oracle.com/java/):** 8, 11, 17, or 21 (LTS versions)
- **[OpenJDK](https://openjdk.org/) ([Eclipse Temurin](https://adoptium.net/temurin/), [Amazon Corretto](https://aws.amazon.com/corretto/), or [Microsoft Build of OpenJDK](https://learn.microsoft.com/en-us/java/openjdk/)):** 8, 11, 17, or 21 (LTS versions)

:::warning

Since ScalarDL is built with JDK 8, contracts must be a JDK 8–compatible binary. If you use a version other than JDK 8, you must configure your build tool to build the JDK 8–compatible binary. There are several ways to specify binary compatibility, including using the `--release 8` option for javac or setting Gradle or Maven configurations to use the JDK 8 toolchain. The following shows the configuration for Gradle:

```gradle
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(8))
}
}
```

For more details about the Gradle and Maven configurations, see [Toolchains for JVM projects for Gradle](https://docs.gradle.org/current/userguide/toolchains.html) and [Guide to Using Toolchains for Maven](https://maven.apache.org/guides/mini/guide-using-toolchains.html).

:::

### Other languages

ScalarDL uses gRPC, so you can create your own client by using the generated clients of your preferred languages.

## Databases

ScalarDL is middleware that runs on top of the following databases and their versions.

### Relational databases

<Tabs groupId="RDBs" queryString>
<TabItem value="Oracle_Database" label="Oracle Database" default>

| Version | Oracle Database 23ai | Oracle Database 21c | Oracle Database 19c |
|:-----------------|:---------------------|:--------------------|:--------------------|
| **ScalarDL 3.9** ||||
| **ScalarDL 3.8** ||||

</TabItem>
<TabItem value="MySQL" label="MySQL">

| Version | MySQL 8.1 | MySQL 8.0 | MySQL 5.7 |
|:-----------------|:----------|:----------|:----------|
| **ScalarDL 3.9** ||||
| **ScalarDL 3.8** ||||

</TabItem>
<TabItem value="PostgreSQL" label="PostgreSQL">

| Version | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 | PostgreSQL 12 |
|:-----------------|:--------------|:--------------|:--------------|:--------------|
| **ScalarDL 3.9** |||||
| **ScalarDL 3.8** |||||

</TabItem>
<TabItem value="Amazon_Aurora_MySQL" label="Amazon Aurora MySQL">

| Version | Aurora MySQL 3 | Aurora MySQL 2 |
|:------------------|:----------------|:----------------|
| **ScalarDL 3.9** |||
| **ScalarDL 3.8** |||

</TabItem>
<TabItem value="Amazon_Aurora_PostgreSQL" label="Amazon Aurora PostgreSQL">

| Version | Aurora PostgreSQL 15 | Aurora PostgreSQL 14 | Aurora PostgreSQL 13 | Aurora PostgreSQL 12 |
|:------------------|:----------------------|:----------------------|:----------------------|:----------------------|
| **ScalarDL 3.9** |||||
| **ScalarDL 3.8** |||||

</TabItem>
<TabItem value="MariaDB" label="MariaDB">

| Version | MariaDB 11.4 | MariaDB 10.11 |
|:------------------|:--------------|:--------------|
| **ScalarDL 3.9** |||
| **ScalarDL 3.8** |||

</TabItem>
<TabItem value="SQL_Server" label="SQL Server">

| Version | SQL Server 2022 | SQL Server 2019 | SQL Server 2017 |
|:------------------|:-----------------|:-----------------|:-----------------|
| **ScalarDL 3.9** ||||
| **ScalarDL 3.8** ||||

</TabItem>
<TabItem value="SQLite" label="SQLite">

| Version | SQLite 3 |
|:-------------------------------------------|:----------|
| **ScalarDL 3.9** ||
| **ScalarDL 3.8.2 or later patch versions** ||
| **ScalarDL 3.8.0 - 3.8.1** ||

</TabItem>
<TabItem value="YugabyteDB" label="YugabyteDB">

| Version | YugabyteDB 2 |
|:------------------|:-------------|
| **ScalarDL 3.9** ||
| **ScalarDL 3.8** ||

</TabItem>
</Tabs>

### NoSQL databases

<Tabs groupId="NoSQL" queryString>
<TabItem value="Amazon_DynamoDB" label="Amazon DynamoDB" default>

| Version | DynamoDB |
|:------------------|:----------|
| **ScalarDL 3.9** ||
| **ScalarDL 3.8** ||

</TabItem>
<TabItem value="Apache_Cassandra" label="Apache Cassandra">

| Version | Cassandra 4.1 | Cassandra 4.0 | Cassandra 3.11 | Cassandra 3.0 |
|:------------------|:---------------|:---------------|:----------------|:---------------|
| **ScalarDL 3.9** |||||
| **ScalarDL 3.8** |||||

</TabItem>
<TabItem value="Azure_Cosmos_DB_for_NoSQL" label="Azure Cosmos DB for NoSQL">

| Version | Cosmos DB for NoSQL |
|:------------------|:---------------------|
| **ScalarDL 3.9** ||
| **ScalarDL 3.8** ||

</TabItem>
</Tabs>

:::note

ScalarDL uses ScalarDB to abstract underlying databases. For details on how to configure each database, see [Configurations for the Underlying Databases of ScalarDB](https://scalardb.scalar-labs.com/docs/latest/database-configurations).

The following list shows the versions of ScalarDB used in ScalarDL internally. This version list will help you if:

- You want to know what available backend databases you can use in ScalarDL. For details about which backend databases are supported and can be used in ScalarDL based on the version of ScalarDB, see the [list of databases that ScalarDB supports](https://scalardb.scalar-labs.com/docs/latest/requirements#databases/).
- You want to know what ScalarDB APIs are available for the `Function` feature in ScalarDL.

| ScalarDL version | ScalarDB version |
|:-----------------|:-----------------|
| 3.9 | 3.12 |
| 3.8.2 or later patch versions | 3.12 |
| 3.8.0 - 3.8.1 | 3.8 |

:::

## Kubernetes

ScalarDL is provided as a Pod on the Kubernetes platform in production environments. ScalarDL supports the following platforms and tools.

### Platform

- **[Kubernetes](https://kubernetes.io/):** 1.27 - 1.31
- **[Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/)**
- **[Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/products/kubernetes-service)**
- **[Red Hat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift):** TBD

### Package manager

- **[Helm](https://helm.sh/):** 3.5+

1 change: 1 addition & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const sidebars = {
'overview',
'design',
'implementation',
'requirements',
'roadmap',
]
},
Expand Down
Loading