Fork me on GitHub

quick question: is there terraform templates for setting up datomic on aws?


@podviaznikov: @mrmcc3 has Datomic + Terraform running.


I’ve got a terraform module which from my understanding sets up a more or less identical system on AWS as the datomic scripts. It ended up being pretty succinct and readable.


Only tedious bit was the transactor bootstrap/userdata script which i converted to a terraform template. Because I essentially copied the userdata script produced by datomic scripts I wasn’t sure if I could share it publicly.


is it possible to connect to a datomic database while the transactor is unreachable?


@codonnell: Not when using dev protocol


@yonatanel: my database is on RDS; sql protocol


@codonnell: I honestly don't know. I just tried now with dev protocol. Even if you tried and it worked with RDS, I don't know what the nuances are, so better wait for an authoritative answer


@yonatanel: appreciate the attempt


@codonnell: Not sure how helpful this is, but here it says "Transactor does not participate in queries. Peers with no transactor connection can still do reads from storage":


@yonatanel: yeah, I think I heard that somewhere in the datomic tutorial videos. That page looks like a nice resource, though. I'll definitely look through it. If I try to connect to the database from a box that can't reach the transactor, I get an exception (reasonable behavior). I just want to know if there's a way to get my peer to ignore the transactor and set up a kind of "read-only" connection.


@codonnell, @yonatanel: peers connect to storage first, which has the connection details for the primary and backup transactors. this is how failover is possible 🙂


have you tried connecting to storage with your transactor down, and issuing only queries?


@robert-stuttaford: Yeah, I tried connecting to storage, and I got CompilerException clojure.lang.ExceptionInfo: Error communicating with HOST x.x.x.x on PORT 4334


i don't think it'll work, but it's worth trying. when first connecting to a database, peers have to grab the latest in-memory live indexes, which the transactor has, but storage does not. this may prevent reads against 'now' dbs. you may be able to read from the past


I didn't know that live indexes lived in the transactor; that's good to know.


the live indexes have to live there (and in all peers) because they haven't made it to storage yet. that's what indexing's job is: integrating all live index into storage


also memcached if you have one connected


@yonatanel: this blog post is really fantastic; thanks for the link


@codonnell: yep. kinda makes you wanna write an open source clone ;)


@codonnell: You can’t start up a connection to a Datomic DB without access to the transactor. It is possible that under certain circumstances, loss of connectivity to the transactor will not prevent peers from running queries, but this is not guaranteed behavior, and it will depend on specifics of storage/config/deployment/etc


can confirm that queries continue on fine during transactor outages


just wasn't sure about starting new connections


@marshall: Alright, thanks for the definitive answer. Given what @robert-stuttaford mentioned about live indexes living on the transactor and each live peer, it makes a lot of sense.


@mrmcc3: any chance you could put that up as a gist or on github? that would be tremendously helpful


I'm not too comfortable with the default CF-based set up where you can't ssh into the machines and tail logs in realtime


does anyone have problem with getting datomic license via email? Registered yesterday, but didn’t get email yet.