Live data from Hacker News

Datomic Free Edition

blog.datomic.com

31–40 of 81 posts

Re: Datomic Free Edition

#31
post #18

Could someone explain what an "embedded durable storage engine" provided by the transactor-local storage is? Where is the data actually stored durably? Could I run my personal website with pet projects with datomic using the free edition and have the data stored safely (e.g not an in memory demo database?)

Transactor local storage is to a directory on the transactor's local disk, and is as safe as you think disks are.

Also: you can backup from one storage system and restore to another. So if you decide you want to upgrade from local disk to DynamoDB, no problem.

Re: Datomic Free Edition

#32
post #14

Earlier quoted context omitted.

This is exactly what happened to me. I wanted to know what it is, opened those pages in tabs, read half of first one and skipped to the second one. It was soooo long ( http://docs.datomic.com/tutorial.html ) I knew I couldn't finish reading it in less than 5 hours and came here to ask: What is this, and why/who would want to use it? It could be useful for a project I'm working on, but I just couldn't understand what…

Probably the best way to get your mind around Datomic conceptually would be to watch these introductory videos[1] Rich and Stu put together when first introducing Datomic. It's pretty revolutionary, IMO. Edit: In response to those too pressed for time to watch the videos, you can read the rationale[2] for Datomic. However, it is a bit long. Rich and Stu may want to summarize it for the really pressed for time. :) [1]…

I watched the first video. It wasn't much better than thee docs; still a little obscure and was just "talk" without any solid examples or use cases. But finally, at around 13:30, they get to say what they mean by "fact". If you want to know if it's something that can be useful to you, you can just skip to this part of video: http://www.youtube.com/watch?v=RKcqYZZ9RDY&feature=playe...

Re: Datomic Free Edition

#33
post #11

I saw this page, and was not surprised that it doesn't say what Datomic is. A lot of people make that mistake. So, I clicked the link at the end of the page to go to your website. I followed some more links. I found three links that talked about feature, benefits, and the architecture, and clicked all three opening them in tabs. I read the first part of every page and then skimmed the rest. I have no damn clue what t…

This talk by Rich Hickey is what got me into Datomic.

http://www.infoq.com/presentations/The-Design-of-Datomic

I would probably have used it for the system I'm making now, as it's a very good match to our requirements, but 0.1 is 0.1, and the docs are kind of sparse so the learning curve for Datalog queries was too steep.

Re: Datomic Free Edition

#34
post #25
post #14

Earlier quoted context omitted.

Probably the best way to get your mind around Datomic conceptually would be to watch these introductory videos[1] Rich and Stu put together when first introducing Datomic. It's pretty revolutionary, IMO. Edit: In response to those too pressed for time to watch the videos, you can read the rationale[2] for Datomic. However, it is a bit long. Rich and Stu may want to summarize it for the really pressed for time. :) [1]…

I've seen a number of comments over the last few weeks to the effect of "if you don't understand this product, watch the intro video". In my opinion, if a product can't be described in a couple of concise sentences, it's going to run into some major roadblocks in getting traction. Watching a video incurs a number of costs - the time taken to watch the video, the effort of plugging in headphones, the pain of buffering…

This isn't meant as a slight to you, but I think that Clojure in general and Datomic specifically (as a newer product) isn't looking for the most customers. They're looking for the right ones that share their vision for programming.

It still requires watching a video, but the video "Simple Made Easy" by Rich Hickey (http://www.infoq.com/presentations/Simple-Made-Easy/) describes it best. If that doesn't appeal to you, then don't worry about what you're missing in Datomic.

Re: Datomic Free Edition

#36
post #23

My nutshell answer to "What is datomic?": It is a database system for Java or Clojure where not all of the database code runs on the server. Instead, the server is fast and "dumb" and all the work for your queries runs on each client individually, which just cache chunks of data from the servers as needed. It turns out having your queries run on the clients has nice properties in terms of query language power and per…

Great summary!

I'd also add a sentence about transactions being first class. Everything is wrapped in transactions, you can add metadata to transactions (who did it, when did it happen), and since no data is lost, you can use transactions IDs to see what your database looked like 1 week ago, etc.

Re: Datomic Free Edition

#37
I think if you're aiming for any sort of broad adoption (are you?), then you'll have to add... SQL.

This may sound like heresy, but in practice the following line is going to be a showstopper for most people:

  Peer.q("[:find ?entity :where [?entity :db/doc \"hello world\"]]", db); 
I don't want to learn a new query language. And I'll most certainly not even try to re-train my team on it. Maybe later I'll become curious about that fancy datalog-language to enable advanced features. But in the beginning, if you want my mindshare, you'd better spoon-feed me.

Take this lesson from cassandra. They started out with Thrift and an extremely cumbersome query-interface, which fit the cassandra data-model perfectly but not the brains of the developers.

Now recently they exposed their query-language as a SQL dialect, and suddenly cassandra is a joy to use.

You should do the same. It will be a lossy abstraction. You'll need weird, non-standard constructs to accommodate the peculiarities of your model. Purists will cry in horror.

BUT: It will look like SQL and roughly work like SQL. Everybody and their dog already knows SQL. People can jump in and bang out "select foo from bar ..." without thinking. People can re-use an entire galaxy of SQL-related tooling and knowledge that has evolved over decades. Most importantly: People can start with something they know and then adapt at their own pace to the great new things that your datastore enables.

Don't underestimate this if you're aiming for the mainstream.

Re: Datomic Free Edition

#38
Great to see a second tier of Datomic that allows broader use of the platform and expansion of the community. If I wasn't using Datomic in dev already this would definitely make me more apt to try it out and experiment.

The compatible APIs and relatively straightforward upgrade process also makes it appealing. Well played.

Re: Datomic Free Edition

#39
post #18

Could someone explain what an "embedded durable storage engine" provided by the transactor-local storage is? Where is the data actually stored durably? Could I run my personal website with pet projects with datomic using the free edition and have the data stored safely (e.g not an in memory demo database?)

Transactor local storage is to a directory on the transactor's local disk, and is as safe as you think disks are. Also: you can backup from one storage system and restore to another. So if you decide you want to upgrade from local disk to DynamoDB, no problem.

Thanks for the clarification. Sounds like one could get away with using the free edition for a pet project website along with some periodic backup of the directory on the transactor machine, but any serious project would wish to upgrade to the DynamoDB version.

Re: Datomic Free Edition

#40
post #37

I think if you're aiming for any sort of broad adoption (are you?), then you'll have to add... SQL. This may sound like heresy, but in practice the following line is going to be a showstopper for most people: Peer.q("[:find ?entity :where [?entity :db/doc \"hello world\"]]", db); I don't want to learn a new query language. And I'll most certainly not even try to re-train my team on it. Maybe later I'll become curious…

Knowing the guys on the development team for datomic, I think their #1 concern is to produce a highly reliable and well-designed system.

Also, they are big on developing systems that are very modular, and since datomic is built on Lisp, adding a SQL frontend would certainly be very easy (like a weekend project.)

I'm sure once these guys have higher priority features addressed, you'll see a SQL feature as well (if folks from the clojure community don't beat them to it and create it first.)

Post reply on HN