# How to use client api in java application

**URL:** <https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912>\
**Category:** Datomic Pro\
**Created:** [July 26, 2021, 10:10am UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912 "2021-07-26T10:10:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nikolayandr](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/nikolayandr/32/375_2.png) [@nikolayandr](https://forum.datomic.com/u/nikolayandr)\
**Post date:** [July 26, 2021, 10:10am UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912/1 "2021-07-26T10:10:10Z")

</div>

Hi, are there any examples/docs how to use api provided by **com.datomic:client-pro** library? There is enough information about **com.datomic:datomic-pro** but nothing about client version. Actually I would know the entry point, if peer library has **datomic.Peer** class as entry point where I can start to use datomic, but I do not find anything similar in the client library

---

<div class="post-metadata">

**Author:** ![nikolayandr](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/nikolayandr/32/375_2.png) [@nikolayandr](https://forum.datomic.com/u/nikolayandr)\
**Post date:** [July 29, 2021, 6:33pm UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912/2 "2021-07-29T18:33:47Z")

</div>

@jaret @stu Could anyone please provide or point me any simple example of usage datomic client pro library in java app?

---

<div class="post-metadata">

**Author:** ![nikolayandr](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/nikolayandr/32/375_2.png) [@nikolayandr](https://forum.datomic.com/u/nikolayandr)\
**Post date:** [July 30, 2021, 12:24pm UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912/3 "2021-07-30T12:24:10Z")

</div>

Or it is supposed that client pro library provides clj files which should used by java app directly like in the next example:

```auto
RT.loadResourceScript("datomic/client/impl/pro.clj");
            RT.var("datomic.client.impl.pro", "create-client").invoke(PersistentHashMap.create(Map.of(
                    Keyword.intern("server-type"), Keyword.intern("peer-server"),
                    Keyword.intern("access-key"), "datomic",
                    Keyword.intern("secret"), "datomic",
                    Keyword.intern("endpoint"), "localhost:8998",
                    Keyword.intern("validate-hostnames"), false)))

```

---

<div class="post-metadata">

**Author:** ![nikolayandr](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/nikolayandr/32/375_2.png) [@nikolayandr](https://forum.datomic.com/u/nikolayandr)\
**Post date:** [July 30, 2021, 2:31pm UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912/4 "2021-07-30T14:31:22Z")

</div>

Looks like I was able to achieve some success result

 ![image](https://us1.discourse-cdn.com/flex016/uploads/cognitect/original/1X/0da608f45a77b623714e08b775a7f12cc357ab16.png)

If it is the right way of using client api in java app then I would ask about async api(since I’m interested in client api to be able to execute async queries) , I did small changes to the above example, but I’m getting an error:  
**“No implementation of method: :recent-db of protocol: #'datomic.client.impl.shared.protocols/Connection found for class: clojure.core.async.impl.channels.ManyToManyChannel”**

 ![image](https://us1.discourse-cdn.com/flex016/uploads/cognitect/original/1X/46b91c20ebf66c3b82480575b2dfcc81adeca83f.png)

It happens when

> var db = fnDb.invoke(connection);  
> because connection is **clojure.core.async.impl.channels.ManyToManyChannel** when the same example is run but for sync api then class of connection is **datomic.client.impl.shared.Connection**

---

<div class="post-metadata">

**Author:** ![nikolayandr](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/nikolayandr/32/375_2.png) [@nikolayandr](https://forum.datomic.com/u/nikolayandr)\
**Post date:** [October 12, 2021, 9:54am UTC](https://forum.datomic.com/t/how-to-use-client-api-in-java-application/1912/5 "2021-10-12T09:54:21Z")

</div>

I highly recommend to use library mentioned here [Client api for Java/Scala published - #3 by jaret](https://forum.datomic.com/t/client-api-for-java-scala-published/1663/3)
