Non-jvm language support

According to the documentation, the REST server is deprecated and should not be used for future projects. However, the peer language support docs point to the REST server as the only way to support Ruby/Python/JavaScript.

Does this mean that non-jvm languages are not officially supported? If so, what are the options for using Datomic with other languages? My guess is that it would have to be a DIY jvm-based service calling the Peer API with no support for Datomic Cloud, or a proxy jvm-based service between the application and Datomic Cloud.

Hi Brian,

It depends somewhat on what you mean by “use Datomic” from other languages.
Web Ions (HTTP Direct or Lambda-backed) with Datomic Cloud enable you to publish HTTP endpoints that can communicate with any consumer you want. You would still need to write the Ion itself (to handle the interop with Datomic) in Clojure, but you can then expose whatever custom API you’d like.

Are you wanting “full” Datomic usage (i.e. a native API with read and write) from another language, or would your use case(s) be served by using the Clojure API for most of your application, but an additional option for read for analytics or query services?


By “use Datomic” I mean completely replace an existing SQL database and use Datomic. The application would need to migrate schema over time, transact, query, etc. A native API would be preferable, but an HTTP api is probably acceptable.

@brian.gregg.centro I work on a product where we added custom endpoints using the on-prem API. We expose query, pull endpoints etc and it’s working pretty well. There are plenty of drawbacks but it’s roughly similar to having the capabilities of the client in your language of choice. If Datomic team were to expose (document) the methods for the peer API, we’d probably write a client that interfaces with that instead