5 ms·
>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 experie
by 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.
- gadders 8y agoThey should get you to write their website copy. Thank you for the summary/translation.
- EpicEng 8y ago> Datomic is an immutable database, written in Clojure. Ah, that helps (I guess my search was a bit _too_ quick). So Ion is really the only jargon there. I'm not even going to delve deeper as I just don't know the ecosystem at all. I was hesitant to even comment in the first place. Thanks.
- 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?