Fork me on GitHub

Hello guys, can I connect to a datomic (free) server from outside? I forwarded 4334,5,6 but I still get org.hornetq.api.core.HornetQNotConnectedException: HQ119007: Cannot connect to server(s). Tried with all available servers. type: #object[org.hornetq.api.core.HornetQExceptionType$3 0x66b1f02d "NOT_CONNECTED"] What am I missing?


Hi @richiardiandrea, this is typically an error you see if the Transactor has bound to an IP/port unavailable to the peer.


If e.g. the Transactor is bound to localhost:4334, but the peer runs on a different host (or in a docker instance), then you need to set the alt-host property to the publicly available IP.


And make sure to expose the ports as well if in a container/firewalled environment


I have a query where I don't want to pull all the values of a multivalued attribute need to know whether the attribute has any values. I'm doing this:

(d/q '[:find (pull ?c [:campaign/docId]) ?m
       [?c :campaign/enabled true]
       [(missing? $ ?c :campaign/zipcodes) ?m]]
That works. But is there a way to do the same thing in the pull syntax? It would be easier for the consumer code if the true/`false` were in the pull result.


Hello. Please enlighten me about the work of datomic free 1. can I limit the amount of memory for memory storage, such as 8 GB 2. what will happen if these 8 GB busy data and I will be adding new entries, whether removing old? or do I have to remove them?


@a.espolov: Datomic Free offers two kinds of storage: mem is in-memory only, on a single machine, limited to available space in the JVM Heap. If your mem database exceeds the available space on the heap, you will get an OutOfMemoryException. free storage uses local disk on the same machine that is running the Transactor; it is limited by available disk space.


@ljosa: pull cannot "rewrite" or transform anything about the data it pulls; it's just a selection.


before this option was not ' free ' storage uses local disk


@a.espolov: Datomic Pro Starter Edition is a no-cost way to use Datomic that offers more options for storage back-end.


and the cost of [EDIT:] DynamoDB can be as low as below 1 USD/month, if you set the read/write capacity to 1-2 pr. second.


Hey, got a probably slightly dumb question about this page, I'm trying to deploy a Datomic AMI: So I have my transactor dynamodb properties up and running, but it's set up with host=localhost which I'm kind of assuming won't work for a transactor which I want to connect to over the network ...but it seems as though the CloudFormation config is going to provision my eventual host itself, so I'm not sure how to look into the future and get the AMI's eventual allocated hostname Is there some Route53 config I need to do or something?

Ben Kamphaus22:01:01

@timgilbert: you don’t have to manage this aspect of it. The cloud formation template generated by Datomic will handle getting host and alt-host values via AWS, and you only need DynamoDB region + table information to connect to the transactor. Peers connect to storage, the transactor writes its location (`host` and alt-host) to storage, peers read it there.


Oh, right! slaps forehead


I had forgotten about the peers-talk-directly-to-storage aspect of datomic


Ok, so then my peer URI is just basically like datomic:ddb://${aws-dynamodb-region}/${aws-dynamodb-table}/${my-db-name}, correct?


Ok, that makes sense, and there's no hostname in the connection URL. Thanks @bkamphaus!