Fork me on GitHub

How does everyone normally run Datomic? What's the smallest possible instance I could run 2gb.. 4gb..? I'm exploring what would be involved with an architecture involving AWS Lambda for a super lightweight server side database for basic websites. Im assuming that a Reserved EC2 instance paid in advance is the best way. I've also been looking at the Client Library and I am just wondering where further documentation is regarding this "Can support non-JVM languages"


non-JVM languages is not a thing yet @grounded_sage. super WIP. if you use the client library from lambda (totally a thing) you’ll need to stand up a Peer Server on EC2 as well


our transactors are c4.large


i have nicely working transactors on m3.medium, but would gladly move down so if anyone runs lesser instances without problems do tell! 🙂


that kind of information is really useful


Thanks for that info @karol.adamiec that's the ball park I was looking at but would be fantastic if it could be pushed down that extra tier. @robert-stuttaford thanks for letting me know. I'm not needing it right now. Still learning and building my front end. Eventually want to build JAMstack style websites for clients and if they need anything more custom I would prefer to use Datomic over learning another database. It seems so much better than anything else. I have barely touched serverside programming and databases yet so if I can keep myself firmly in Clojure land I will be a happy man. A Clojurescript Client Library on lambda would be the bees knees!


My transactor is on c3.large, my Peers on t2.medium


t2.mediums are going to choke as soon as you give it any sort of load. java wants cores. lots of em.


can't claim we've been under heavy loads indeed (maybe 1000ish concurrent users) but we've been OK so far


never exceeded 30% CPU usage, at least not from traffic


Say, is there anything built-in to datomic that will recursively walk the graph from one entity to all of its :db.type/ref attributes and grab the whole set? I don't need it to be performant, just looking for auditing / development aids


I guess I'm looking for a recursive (d/touch)


Hi all, has anyone worked on building a realtime web or mobile app backed by clojure and datomic? Would love some general guidance


Basically, is there a way for the peers to track the queries from clients, and treat them as live queries. Then each peer can listen for transactions, and then somehow invalidate those live queries when pertinent data changes in the system. If we look at systems like firebase, they are essentially holding live queries on each asked for key. Just want to see how we would do something like this without having to create many custom endpoints and special handling. Rather, use the single endpoint philosophy. Imagine if a datalog query could somehow be used as the query key, and if there was some equality check or some check to see “did this transaction affect this query?"


@aramz: I would think you could roll such a system yourself but I'm not aware of anything that already exists


In totally unrelated news, I have a question about database filters...


Looking at this page: seems as though this could only be performant if (d/filter) is applied lazily, can anyone confirm whether that is the case?


Otherwise, passing a filtered db into a function would need to scan every atom in the source db


Also, FWIW m3.medium EC2 instances have been working great for my org, but we don't have much load in general