4 ms·
This is about Datomic, not really Clojure. So if you don't have experience with Datomic Clojure understanding would not really help you. Seems to me this is a
by nickik 8y ago
This is about Datomic, not really Clojure. So if you don't have experience with Datomic Clojure understanding would not really help you.
Seems to me this is a combination of Datomic and Amazon Lambda to deploy programs that can use Datomic without all surrounding deployment problems.
- EpicEng 8y ago>Ions let you develop applications for the cloud by deploying your code to a running Datomic cluster I could be totally off base here as I have no real experience with clojure, but this intro sentence threw me off right away. >Ions let you develop applications for the cloud by deploying your code to a running Datomic cluster What is an ion? What is a "datomic cluster"? Are these terms just new jargon for what is essentially a deployment system? If they're a clojure thing then ok, but a quick search makes me think they're not. I understand software and I understand deployment. I read the rest of the page and I feel like I would have to problem understanding what this really is if they cut down on the jargon.
- nickik 8y agoIon is a name as far as I know. Datomic is a database consists of multiple services so you can deploy it on one machine or multiple. I called it a cluster because on AWS of course the idea is to deploy it on multiple. Amazon Lambda is a way to deploy code without telling Amazon about the underlying machines/VMs. Ion is a way to deploy Clojure and Datomic without knowing anything about the underlying machines or VMs.
- paradigmshiv 8y agoDatomic is an immutable database, written in Clojure. It's pretty cool, you should check it out. The company behind Datomic (Cognitect, which also develops the Clojure language) recently started offering the database as a cloud service. This was something Datomic users had wanted for a long time, but one problem with the new service was that one of Datomic's primary features, i.e. having the database reside in memory with your application, was missing. Ions is a new service that addresses this problem by allowing you to deploy your app to the same VMs that are hosting Datomic in the cloud (a "datomic cluster"). It's basically PaaS for Datomic-backed applications. I'm a longtime Clojure user and I had some trouble understanding all this as well, so I agree that could do a better job with presentation.
- hellofunk 8y ago> one of Datomic's primary features, i.e. having the database reside in memory with your application I'm not sure I follow - are you saying it is desired to have an entire database also in memory? You don't probably mean that, but I thought a key feature of databases is for them to be your offline storage so things don't need to be in memory. I wouldn't be able to fit the contents of my SQL databases into memory on any machine I own.
- paradigmshiv 8y agoThere is some cleverness going on behind the scenes, so for a large database you wouldn't necessarily have the whole thing in memory at once. But one of the big selling points of Datomic is that you get to treat the entire database as a value, and when you configure your app as a Datomic Peer (the feature I referred to above), it loads most of the Database into memory as it is needed.
- stuarthalloway 8y agoDatomic keeps your database in the same memory space as your application code, backed by SSD, backed by EFS, backed by S3/DynamoDB. Each layer of this cache provides a different value, and the whole cache system is automatic and eternally consistent because the database is an immutable value. You want the illusion that your database is entirely in memory, just as want the illusion that all your memory is in your L1 cache.
- alter_eco123 8y ago> Each layer of this cache provides a different value What does that mean? And what kind of actual memory usage should people expect with a "big" database?
- stuarthalloway 8y agoHm, I should have said "value proposition", e.g. SSDs are low latency but can fail, S3 is high latency but "never" fails, etc. Datomic is designed for data sets larger than memory, and also to do a good job caching working sets that do fit in memory.
- always_good 8y agoIons is the name of a service. Datomic is a database. These aren't jargon. Are you also bewildered by "Postgres cluster" or "MongoDB cluster? Why isn't it your responsibility to spend the 10 seconds to see that Datomic is the name of another database?