Welcome! Please see the About page for a little more info on how this works.

+1 vote
in On-Prem by
edited by

Hi!
There is a DynamoDB compatible service called YDB.
YDB in the Yandex Cloud has a serverless mode with DynamoDB support..

So I have:

  1. AWS_ACCESS_KEY_ID
  2. AWS_SECRET_KEY
  3. region: ru-central1
  4. endpoint like https://docapi.serverless.yandexcloud.net/ru-central1/b1gia87mbaomkfvs6rgl/etnudu2n9ri35luqe4h1

I have tried using the ddb and ddb-local protocols with different settings.

Variants of aws-dynamodb-override-endpoint
1. docapi.serverless.yandexcloud.net/ru-central1/.../...
2. docapi.serverless.yandexcloud.net:443/ru-central1/.../...
3. https://docapi.serverless.yandexcloud.net/ru-central1/.../...

$ bin/datomic ensure-transactor config/ddb.properties config/ddb-gen.properties
java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in authority at index 7: http://"https://docapi.serverless.yandexcloud.net/ru-central1/b1g31q09ln3ca15cg5mf/etnckvjnbskiko1s639l"
	at com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:216)
	at com.amazonaws.util.RuntimeHttpUtils.toUri(RuntimeHttpUtils.java:190)
	at com.amazonaws.AmazonWebServiceClient.toURI(AmazonWebServiceClient.java:329)
	at com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:317)
	at datomic.ddb$client.invokeStatic(ddb.clj:14)

I think that ddb-local always uses http protocol and there is no way to configure it with https.

There are some examples of using AwsSDK with YDB in Yandex cloud

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
          .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("<Document API endpoint>", "ru-central1"))
          .build();

Could you add support for DynamoDB compatible services?
Could it be the new `aws-dynamodb-override-protocol' setting, which is by default 'http' ?

1 Answer

0 votes
by

Mikhail,

Could you explain what you are actually trying to do? Are you trying to use YDB as the underlying storage for Datomic? If so, why as in what specific properties are you interested in?

Datomic pro uses all underlying storages in the same way as KV store. Given that YDB is SQL you may already be able to get it running by following our SQL docs however, we have not tested YDB or evalutated if that storage is different enough to warrant it's own protocol and if that storage stack would have the requirements of a Datomic DB. From reading the marketing on the site, it does indicate that it is strongly consistent which is the primary requirement for configuring a table space

Or are you trying to utilize YDB from a Datomic system you are operating?

by
> Are you trying to use YDB as the underlying storage for Datomic?
Yes, I am.

YDB only has an experimental JDBC driver.
https://github.com/ydb-platform/ydb-jdbc-driver
So I thought to use DynamoDB compatible API. My guess is that it should be more reliable.

> Or are you trying to use YDB from a Datomic system you are running?
I'm researching how to integrate Datomic into my application deployed in YandexCloud. I'm testing Managed Postgres as storage for Datomic.

> If so, why and what specific features are you interested in?
I can't use AWS and DynamoDB.  But I can use YDB with AWS SDK.
If I understand your question, I am considering all available storage for me. And YDB is interesting by its serverless mode.
Welcome to the Datomic Knowledgebase, where you can make features requests, ask questions and receive answers from other members of the community.
...