28 ms·
Datomic is Free
- Infamousxwho70 3y ago[dead]
- shard_rocker6 3y ago[dead]
- avocade 3y agoWow, that came out of left-field. Hope it goes open-source as well later on. Thanks guys!
- robertlagrant 3y agoSounds fantastic - I'd love to try it. I've been keeping an eye on Clojure and Datomic for years. I always wonder if this sort of move portends an exit of some of the core technical team, who would very much like to fork the codebase and move on, but in this case with only the binaries being opened up, it feels more as though they want some more people to try Datomic out. Databases such as Neo4J do this as well - free to run, but you'll probably want to pay for support.
- Veranorooz67 3y ago[dead]
- Cuteaesthetic 3y ago[dead]
- Kawaiiaesthetic 3y ago[dead]
- Jinxcosplay 3y ago[dead]
- MeshFresh456 3y ago[dead]
- DorkyDweeb2 3y ago[dead]
- HilariousRed3 3y ago[dead]
- Soverinowu09 3y ago[dead]
- Storystork790 3y ago[dead]
- Soverinowu689 3y ago[dead]
- Lucitabee46 3y ago[dead]
- Arcadezwade22 3y ago[dead]
- Gameclord34 3y ago[dead]
- givemethrill09 3y ago[dead]
- ruggedhuman3 3y ago[dead]
- out_lurking4 3y ago[dead]
- tiger_hoods8 3y ago[dead]
- imma_adonis1 3y ago[dead]
- corden_kimmel1 3y ago[dead]
- shard_rocker6 3y ago[dead]
- slay_hearts7 3y ago[dead]
- lion_ankles6 3y ago[dead]
- peez_weez9 3y ago[dead]
- steel_rebel6 3y ago[dead]
- heart_stealer1 3y ago[dead]
- shadow_lord3 3y ago[dead]
- wolf_gang7 3y ago[dead]
- crow_srows9 3y ago[dead]
- SasukeUchiha1 3y ago[dead]
- FairyTail9 3y ago[dead]
- Tangy_sushi0 3y ago[dead]
- Namecheckr4 3y ago[dead]
- TheOneandonly1 3y ago[dead]
- fabulously_your 3y ago[dead]
- CitySlicker1 3y ago[dead]
- OfHearts00 3y ago[dead]
- Irish_Lass2 3y ago[dead]
- Charmed_Beauty0 3y ago[dead]
- GloryBringer2 3y ago[dead]
- steelersfan5 3y ago[dead]
- born_to_flirt 3y ago[dead]
- Kingofallking 3y ago[dead]
- OneTruePerson 3y ago[dead]
- BadGuy4U 3y ago[dead]
- DungeonDevil3 3y ago[dead]
- IzzaBigDeal8 3y ago[dead]
- SoHapppyy2 3y ago[dead]
- SoExcited 3y ago[dead]
- ImImpatient4 3y ago[dead]
- humorless 3y agoI saw some people said that they love Datomic but still felt that Datomic's performance is not as good as Postgres, especially in OLAP queries. Actually, you get the best thing from the two world. Plenish is a library that allows you to sync the content in Datomic to Postgres. https://github.com/lambdaisland/plenish https://github.com/lambdaisland/plenish
- quantum_state 3y agoThis is very good news …
- NickBusey 3y agoFree as in beer. Not free as in speech. > Is it Open Source? Datomic binaries are provided under the Apache 2 license which grants all the same rights to a work delivered in object form. Datomic will continue to be developed at Nubank, where it is a critical piece of our infrastructure.
- simonw 3y agoI find that answer confusing. I don't think I've ever seen binaries being licensed under Apache 2 without the relevant source code before.
- a2800276 3y agoYeah, it's a complete bullshit move. Mongoose OS (an embedded iot Plattform not the db) does something similar. It's extremely weasely and doesn't instill trust at all.
- frou_dh 3y ago[flagged]
- Pet_Ant 3y agoThere is nothing wrong with saying "It is not open source but you can freely use the binaries". That is the same thing, but upfront about it, but this feels like open-source-washing.
- a2800276 3y agoNothing wrong with that at all. But that's not what was said. Answering the question (that you posed to yourself in your own FAQ): "Is it Open Source?" by stating: "we've licensed the binary using an Open Source license" seems a bit disingenuous. A more matter-of-factly answer would have been: "No".
- deleted 3y ago[deleted]
- martypitt 3y agoOnly the binaries are made available, not the source, which is interesting. I guess they don't claim to be open source, they're claiming to be free, which is - in itself - awesome. Last time I checked, you couldn't push binaries to maven central, without also releasing the source. That may have changed.
- casion 3y agoMaven actually has a tutorial on publishing binaries without source. So I assume it's ok when they tell you how to do it.
- martypitt 3y agoSure, Maven makes this possible. But Maven Central has strict rules around what can be published there. I just double checked and it's a requirement to publish the source as well as the binaries: https://central.sonatype.org/publish/requirements/#supply-javadoc-and-sources https://central.sonatype.org/publish/requirements/#supply-ja...
- BaculumMeumEst 3y agoit seems you're right, but it also says the following, so i'm confused on whether it's a hard requirement? "If, for some reason (for example, license issue or it's a Scala project), you can not provide -sources.jar or -javadoc.jar , please make fake -sources.jar or -javadoc.jar with simple README inside to pass the checking. We do not want to disable the rules because some people tend to skip it if they have an option and we want to keep the quality of the user experience as high as possible."
- eternalban 3y agoSomeone (forget who but he worked there) was giving a presentation of Datomics in some downtown (NYC) bank circa 2014 iirc. Per the presenter -- iirc someone asked a specific technical question -- even people working for the company don't get to see the full source. Only a small team has access to the full source, and he said he wasn't one of them.
- adamfeldman 3y agoWhat is Datomic, you ask? It's a database written in Clojure. https://hn.algolia.com/?q=datomic https://hn.algolia.com/?q=datomic Datomic is an operational database management system - designed for transactional, domain-specific data. It is not designed to be a data warehouse, nor a high-churn high-throughput system (such as a time-series database or log store). It is a good fit for systems that store valuable information of record, require developer and operational flexibility, need history and audit capabilities, and require read scalability. (via https://docs.datomic.com/pro/getting-started/brief-overview.html https://docs.datomic.com/pro/getting-started/brief-overview....)
- mbesto 3y agoFor 90% of the web devs that just spin up Postgres/MySQL, why would you use Datomic over that?
- roguas 3y agoYou have to add a lot of scaffolding to postgres to make it semi-immutable. datomic just is, wanna know previous user email, just go back and see. Out of the box, without thinking about it.
- evantbyrne 3y agoImmutability is certainly tempting for certain kinds of data. Does it handle use-cases where data needs to be deleted though? i.e., privacy compliance.
- mcbits 3y agoIt looks like they call that excision, which leaves behind a breadcrumb saying something was deleted and which can't itself be deleted.
- deleted 3y ago[deleted]
- 3y ago
- endisneigh 3y agoThe price is certainly right, but has anyone used this in production? What was your experience like?
- adamfeldman 3y agoOne example: https://www.datomic.com/nubanks-story.html https://www.datomic.com/nubanks-story.html
- dagw 3y agoWorth keeping in mind that Nubank owns the company that makes Datomic, so that might colour their opinion. On the flip side they probably wouldn't have bought the company if they thought their product was crap.
- jackrusher 3y agoYes, it's used by many companies in production. There's a partial list here: https://www.datomic.com/customers.html https://www.datomic.com/customers.html
- endisneigh 3y agoto be honest the testimonials are terrible. > “Datomic added to DynamoDB was the only option that didn’t force us to sacrifice features or add the expense of developer time. Without it, we would have had to push back a lot more, as the features would have been too difficult.” (https://www.datomic.com/the-brigades-story.html https://www.datomic.com/the-brigades-story.html) like, what? effectively useless information. some of the other testimonials mention keeping revision history, which is neat, but why Datomic vs. others? it's pretty easy to keep revision history with other databases too.
- dgb23 3y agohttps://www.datomic.com/get-datomic.html https://www.datomic.com/get-datomic.html still seems to show licensing fees at the time of this comment.
- augustl 3y agoDatomic's is perfect for probably 90% of small-ish backoffice systems that never has to be web scale (i.e. most of what I do at work). Writing in a single thread removes a whole host of problems in understanding (and implementing) how data changes over time. (And a busy MVCC sql db spends 75% of its time doing coordination, not actual writes, so a single thread applying a queue of transactions in sequence can be faster than your gut feeling might tell you.) Transactions as first-class entities of the system means you can easily add meta-data for every change in the system that explains who and why the change happened, so you'll never again have to wonder "hmm, why does that column have that value, and how did it happen". Once you get used to this, doing UPDATE in SQL feels pretty weird, as the default mode of operation of your _business data_ is to delete data, with no trace of who and why! Having the value of the entire database at a point in time available to your business logic as a (lazy) immutable value you can run queries on opens up completely new ways of writing code, and lets your database follow "functional core, imperative shell". Someone needs to have the working set of your database in memory, why shouldn't it be your app server and business logic? Looking forward to see what this does for the adoption of Datomic!
- Lutger 3y agoDatomic always seemed like a really cool thing to use. However, I'm not familiar with Clojure or any other JVM based language, nor do I have the time to learn it. And I can't find any supported way to use it with other languages (I'm not even talking about popular frameworks), or am I missing something? It doesn't feel like the people behind Datomic actually want to have users outside of the Clojure world, which will be rather limiting to adoption.
- electroly 3y ago> Someone needs to have the working set of your database in memory, why shouldn't it be your app server and business logic? This one confused me. The obvious reason why you don't want the whole working set of your database in the app server's memory is because you have lots of app servers, whereas you only have one database[1]. This suggests that you put the working set of the database in the database, so that you still only need the one copy, not in the app servers where you'd need N copies of it. The rest of your post makes sense to me but the thing about keeping the database's working set in your app server's memory does not. That's something we specifically work to avoid. [1] Still talking about "non-webscale" office usage here, that's the world I live in as well. One big central database server, lots of apps and app servers strewn about.
- deleted 3y ago[deleted]
- hombre_fatal 3y agoAside, I remember HN in 2009 or so where Clojure was a daily homepage staple and Rich Hickey was putting out his talks about Clojure and code design. I watched a lot of that and used Clojure fulltime for five years. Wonder what he's up to these days.
- xmlblog 3y agoAttending https://2023.clojure-conj.org/schedule/ https://2023.clojure-conj.org/schedule/
- kgwxd 3y agoOh, that's today and tomorrow. I had been waiting for that, I could have sworn earlier this year they said there was going to be a live stream available. Maybe it didn't pan out. Edit: Oh, there are streaming tickets for $20.
- vaylian 3y agoProbably spending a lot of time in hammocks[1] [1] https://www.youtube.com/watch?v=f84n5oFoZBc https://www.youtube.com/watch?v=f84n5oFoZBc
- lib-dev 3y agoThose talks inspired far more than Clojure itself. It sort of started this movement toward simplicity as a value.
- frou_dh 3y agoIf that's the case then all the people running around praising the ""simplicity"" of golang got the wrong end of the stick completely from Rich's classic presentations.
- moomin 3y agoThe thing is, Hickey was entirely right to reject this idea of “Simplicity” being the same thing as “Easy”. But he then decided to conflate in “comprehensible” which it turns out is very much a matter of aesthetics. Turns out if you really focus on composability above other concerns you get Haskell.
- elesbao 3y agonice. now everyone can experiment the pain of running s3+pgsql+a huge blob of binary using container ram ! /rant - it's an awesome piece of software regardless.
- butternoodle 3y agoCan you elaborate?
- kgwxd 3y agoI really like Clojure and the ideas behind Datomic but free without source is a trap, every time. They have to make money somehow, but they already sold to a bank. If that bank wants devs willing to work on their systems after the current generation moves on, I think they'd be better off going open source and to continue paying good devs to work on it. Everyone already knows lock-in is bad for businesses. Devs will seek non-proprietary solutions first, if they can't find it, there are already plenty of proven proprietary solutions they'll settle on way before Datomic. Open the source, sell the support.
- charesjrdan 3y agoYou could look into http://xtdb.com/ http://xtdb.com/ if you want an open source alternative
- jchw 3y agoNot complaining about the actual announcement itself here: seems pretty sweet all things considered, But: the "Is it Open Source?" section should lead with "No." It's not a complicated question, and it's not a complicated answer. I think it's weird to talk about having "all the same rights" without explaining why that matters particularly (it does matter, it's just not explained much!) but it is somewhat tangential to the question being posed which has a very clear and straightforward answer. I hope more companies consider this unusual arrangement at least as an alternative to other approaches. Permissively licensed binaries can come in handy, though it certainly comes with it's risks. For example, Microsoft released the binaries for its WebView2 SDK under the BSD license; this is nice of course, but the side-effect is that we can (and did) reverse engineer the loader binary back to source code. I suspect that's unlikely to happen for any substantially large commercial product, and I am not a lawyer so I can't be sure this isn't still legally dubious, but it's still worth considering: the protections of a EULA are completely gone here, if you just distribute binaries under a vanilla permissive open source license.
- kevincox 3y agoI felt the exact same thing. I was pretty sure the answer was "No" but they were too chicken to write it. Were they hoping that people wouldn't notice?
- a2800276 3y agoYou'd think they could have just left that question out of their FAQ and licensed it with a "free-as-in-beer" click-through license.
- nerdponx 3y agoProbably. They were hoping that the less-informed (like me) would see "The Datomic binaries are being released under the Apache 2.0 license" and think "Datomic is relicensed under Apache 2.0".
- sneak 3y agoIt worked for Docker Desktop and BSC. The products even have github repos! There's just no source in them. It's open source cosplay.
- spapas82 3y agoIt seems that they give the binaries for free but they won't release the source code. Can somebody explain to me what's the point of keeping the source closed in this case? I really can't think of any reason
- harperlee 3y agoPerhaps security by obscurity, it being now a proprietary component of a bank?
- xpe 3y agoThere are valid reasons not to release the source code that have nothing to do with “security by obscurity”: legal, various notions of “control”, and more
- harperlee 3y agoAnd I’d add that security by obscurity is also a valid reason. It’s bad as a standalone strategy, but good as a complementary strategy. Related: https://news.ycombinator.com/item?id=24444497 https://news.ycombinator.com/item?id=24444497
- brianwawok 3y agoDatomic LOOKED cool 10-12 years when it first came out. But they started from day 1 with a price, so most people, me included, just passed over it. I think they went way too fast to commercial, and needed to go a freemium model to actually get market share.
- xpe 3y agoThis doesn’t quite reflect the history. Datomic had various free/trial options. They evolved a little bit. Someone who watched the pricing and licenses very closely probably could do a better timeline than I could.
- brianwawok 3y agoRight but it was always very clear “you can have it in dev for free, but prod is $$$$$”. It was not something like “use it free in prod as much as you want, or pay us for support” I had a few projects it would have been cool on, but I just did postgres instead and won in the long run.
- fulafel 3y ago> Datomic Cloud will be available on AWS Marketplace with no additional software cost. This is cool as well. It's a CloudFormation template based product you can deploy from AWS Marketplace.
- nXqd 3y agoamazing piece of work, it's nice to see it's free.
- dustingetz 3y agois Datomic Cloud used by Nubank?
- sdfjkl 3y agoWhere's the source? Why does it say "Pricing" on the website if it's free? This isn't free, it's just an attempt at free publicity.
- wartijn_ 3y agoThe pricing page mentions it's free. > This section only applies to Datomic 990-9202 and lower. Newer versions of Datomic Cloud will be free of licensing related costs, and you will only pay for the hardware that you use to run the system.
- mst 3y agoI guess NuBank (Cognitect's owners) have concluded that the paid licensing business wasn't worth the hassle compared to having the developer time involved spent on other things. Releasing only binaries, while I understand people being grumpy about it, seems like an interesting way of keeping their options open going forwards. Since it was always closed source, it now being 'closed source but free' is still a net win. The Datomic/Cognitect/NuBank relationship is an interesting symbiotic dynamic and while I'm sure we can all think of ways it might go horribly wrong in future I rather hope it doesn't.
- motoboi 3y agoVery probably they understood that having a property database makes hiring and onboarding more difficult than necessary. Open sourcing the database helps on that.
- rbalicki 3y agoIf I recall correctly, Datomic gives you the ability to query the database at a given timestamp. Are there other DBs with this feature that folks are aware of?
- dangets 3y agoLink comment in a similar HN discussion: https://news.ycombinator.com/item?id=14715279 https://news.ycombinator.com/item?id=14715279
- AzzieElbab 3y agoCongratulations to Rich Hickey's children!! I hope your college experience was excellent. Disclaimer: that is how Rich explained why Datomic stayed closed source.
- rektide 3y agoIt notably powers Roam, a kind of interesting notes/mini Notion product. There's a reasonably interesting writeup of the tech details that helps show off Atomics value some, https://www.zsolt.blog/2021/01/Roam-Data-Structure-Query.html https://www.zsolt.blog/2021/01/Roam-Data-Structure-Query.htm... https://news.ycombinator.com/item?id=29295532 https://news.ycombinator.com/item?id=29295532
- vrglvrglvrgl 3y ago[dead]
- espeed 3y agoIs SQLite Wasm on the horizon?
- chrisjc 3y agoCurious why you're asking this question when it seems to have little to do with Datomic going "free"? Did you mean Datomic WASM on the horizon? Or am I missing some other connection between SQLite and Datomic?
- espeed 3y agoDatomic Wasm backed by SQLite.
- chrisjc 3y agoInteresting! What are you using SQLite for? If it's analytics, perhaps DuckDB WASM might be an option?
- espeed 3y agohttps://sqlite.org/wasm/doc/trunk/index.md https://sqlite.org/wasm/doc/trunk/index.md https://developer.chrome.com/blog/sqlite-wasm-in-the-browser-backed-by-the-origin-private-file-system/ https://developer.chrome.com/blog/sqlite-wasm-in-the-browser...
- jcadam 3y agoThe licensing was the biggest thing hurting Datomic adoption. This is a smart (albeit late) move.
- thayne 3y ago> Is it Open Source? > Datomic binaries are provided under the Apache 2 license which grants all the same rights to a work delivered in object form. That doesn't answer the question at all. I assume the answer is no, because otherwise they would just say yes, and have a link to the source code somewhere. But that is such a weird, and possibly duplicitous way to answer.
- samuell 3y agoQuestion to people having used Datomic: Based on experience with Prolog, I always thought using Datalog in a database like Datomic would mean being able to model your data model using stored queries as a very expressive way of creating "classes". And that by modeling your data model using nested such queries, you alleviate the need for an ORM, and all the boilerplate and duplication of defining classes both in SQL and as objects in OO code ... since you already modelled your data model in the database. Does Datomic live up to that vision?
- gleenn 3y agoClojure in general is all about passing around little maps of data and in particular not using OO to model. So Datomic naturally continues that by returning maps of nested structures to represent your query results and does side-step the ORM completely.
- PreachSoup 3y agoQuestion: What's the difference between nested oop objects (composition over inheiritance) vs maps of nested structures?
- xmcqdpt2 3y agoTo paraphrase a well known saying, objects are the poor person's nested maps and vis versa.
- gleenn 3y agoRich Hickey has a great talk about how Objects are data structures with unique interfaces that are unnecessary complexity. He showed and example of a web server with a web request object with request headers etc etc. Doing simple things like collecting information out of that nested object structure is bespoke and harder than it should be for no real gain. If everything is a map or list or set, it becomes completely trivial to extract and manipulate data from a structure. It's a subtle difference at first but when everything is like that it makes your system far simpler. Unfortunately I can't remember exactly where the part of this talk is.
- moorg 3y agoFor those who haven't followed the story: 2007 - the Clojure programming language is announced by Rich Hickey and gains quite a bit of traction over the next 5 or 6 years. It never becomes a "top 5" language, but it could still today be arguably considered a mainstream language. It's been endorsed as "the best general purpose programming language out there" by "Uncle" Bob Martin[1] (author of Clean Code) and Gene Kim[2] (auther of The Phoenix Project, the seminal DevOps book). The fact that Rich spent two years working on it without pay and without the commercial backing many other languages enjoy is a real testament to his commitment and his vision. A Clojure-related emacs package[3] quotes Rich when it starts a REPL: "Design is about pulling things apart." 2012 - the Datomic database is announced by Rich Hickey's company. The database is praised for its ingenuity and its "time travel" features. It was designed to be deployed anywhere in the beginning, but, over time, it became difficult to deploy outside of AWS environments and even the AWS deployment path was quite cumbersome--the Datomic marketing page used to feature a maze-like diagram of all the AWS-specific features needed to make the thing work (it would be nice to find a link to that picture); I'd think most companies would have trouble digesting that and integrating it into their technology "stack". 2020 - Nubank (a Brazilian fintech backed by at least one US venture firm and a large production user of Datomic) acquires Rich Hickey's company. It appears Datamic never gained much use outside of a handful of companies. Making it free of charge (2023) may be the cost-effective thing to do in such a situation if it costs more to handle billing and payments than are brought in. The reason they're not releasing the source code could be legal one or simply the fact that open sourcing a large piece of software takes a lot of effort--something a for-profit financial services company like Nubank doesn't prioritize (rightly so). 1: https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.... 2: https://itrevolution.com/articles/love-letter-to-clojure-part-1/ https://itrevolution.com/articles/love-letter-to-clojure-par... 3: https://github.com/clojure-emacs/cider/blob/master/cider-util.el#L636 https://github.com/clojure-emacs/cider/blob/master/cider-uti...
- lgrapenthin 3y agoThe 2012 section seems not correct. In the time between 2012 and 2020 I deployed Datomic in various non AWS environments. Datomic was never particularly tied to AWS. I think your timeline also misses Datomic Cloud, which was an AWS exclusive product that launched much later than 2012.
- CrimsonCape 3y agoSince the conversation seems to be focusing on the Apache 2.0 license, what would you do? Clearly there isn't a lot of precedent for "closed-source, free-to-use" licenses. In this case Datomic maintains development control over their product and "source of truth" is still themselves, and the implicit assumption is that you enthusiastically use their product for free with no strings attached because you respect them as the source of truth.
- yencabulator 3y ago> Clearly there isn't a lot of precedent for "closed-source, free-to-use" licenses. Freeware has been a thing for mere four decades now. https://en.wikipedia.org/wiki/Freeware https://en.wikipedia.org/wiki/Freeware
- beders 3y agoEvery single day I wish the architects at my current job had chosen Datomic instead of Postgresql. It would have saved us so so much time and trouble. The time traveling ability alone would have been so useful so many times. Also the ability to annotate transactions is awesome. So many goodies. Here's a good summary: https://medium.com/@val.vvalval/what-datomic-brings-to-businesses-e2238a568e1c https://medium.com/@val.vvalval/what-datomic-brings-to-busin...
- activitypea 3y agoWhat is the benefit of having it closed source? My view is that Datomic is a novel upstart in the persistence space. Most of their competition - Postgres, Mongo, Cassandra - is open-source, so they're just shooting themselves in the foot. The "pay us extra for convenient hosting and consulting" model isn't threatened by open-source in the slightest. The only thing I can think of is that they're trying to compete with Oracle/Db2/SQL server, but I can't imagine an enterprise eyeing any of those solutions ever giving Datomic a chance.
- erikpukinskis 3y agoI suspect they don’t want to deal with pull requests from people they didn’t hire.
- KingMob 3y agoHeh. Even most Cognitects had no access to the Datomic source.
- kragen 3y agosounds like they're not releasing the source code, just the binaries, even though the binaries are under the apache license so, less than useful if you want to study and modify datomic; you may have the legal "right to repair" but not the practical possibility
- thatwasunusual 3y ago> Datomic's is perfect for probably 90% of small-ish backoffice systems that never has to be web scale (i.e. most of what I do at work). I will also argue that 90% of those don't need this. Just by seeing the term "web scale" makes me shy off.
- augustl 3y agoAnecdotally, all the ones I've worked it where I've used SQL have needed it. I've always ended up wondering when, why and who changed an attribute to its current value, but that's not knowable unless you jump through hoops and manually implement it.
- blatant303 3y agoDatomic is an event-sourced db, and it makes it hard to introduce retroactive corrections to the data when your program's semantic already rely on using datomic's time travelling abilities: at one point you'll need to to distinguish between event time and recording time as explained in this excellent blog post: https://vvvvalvalval.github.io/posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even... This is why I' rather use XTDB [1], a database similar to datomic in spirit, but with bitemporality baked in. [1] https://www.xtdb.com https://www.xtdb.com
- redbar0n 3y agoEvent time vs. recording time - I think this was the link you were looking to provide: https://vvvvalvalval.github.io/posts/2017-07-08-Datomic-this-is-not-the-history-youre-looking-for.html#taking_a_step_back:_event_time_vs_recording_time https://vvvvalvalval.github.io/posts/2017-07-08-Datomic-this...
- LukeEF 3y agoThere are already a few open-source alternatives that run datalog variant query languages. I'd point the curious towards TerminusDB [1] and TypeDB [2]. TerminusDB is implemented in prolog (and rust) so an alternative with datalog in the heart. [1] https://github.com/terminusdb/terminusdb https://github.com/terminusdb/terminusdb [2] https://github.com/vaticle/typedb https://github.com/vaticle/typedb
- bvanderveen 3y agoFrom experience: Datomic Cloud is slow, expensive, resource intensive, designed in the baroque style of massively over-complicated CloudFormation astronautics. Hard to diagnose performance issues. Impossible to backup. Ran into one scenario where apparently we weren't quick enough to migrate to the latest version, AWS had dropped support for $runtime in Lambda, and it became impossible to upgrade the CloudFormation template. Had to write application code to export/reimport prod data from cluster to another—there was no other migration path (and yes, we were talking to their enterprise support). We migrated to Postgres and are now using a 10th of the compute resources. Our p99 response times went from 1.3-1.5s to under 300ms once all the read traffic was cut over. Mother Postgres can do no wrong. Still, Datomic seems like a cool idea.
- panick21_ 3y agoThey should have just focused on having a great Kubernetes setup experience, their focus on this cloud stuff always seemed strange to me.
- JulianWasTaken 3y agoI don't doubt your story of course, and I love Postgres, but comparing apples to oranges no? Datomic's killer feature is time travel. Did you simply not use that feature once you moved off Datomic (and if so why'd you pick Datomic in the first place)? Or are you using Postgres using some extension to add in?
- bvanderveen 3y agoWe implemented it in Postgres with 'created_at' and 'deleted_at' columns on everything and filtering to make sure that the object 'exists' at the time the query is concerned with. Changes in relationships between objects are modeled as join tables with a boolean indicating whether the relationship is made or broken and at what time. Our data model is not large and we had a very complete test suite already, so it was easy to produce another implementation backed by postgres, RAM, etc.
- 3y ago
- JimmyRuska 3y agoRDFox is worth a try as an alternative, also datalog but C++ based, has incremental reasoning, and explainability. It's a database but also a rules engine that can chain any number of rules. As far as I know datomic is unique for its "query the database at any point in history" and incremental tracking of schema changes, easy to use UDFs, it really shines above other databases in that context.
- avodonosov 3y agoIf you work with Datomic, my little helper functions may be useful: https://github.com/avodonosov/datomic-helpers https://github.com/avodonosov/datomic-helpers
- rafaelturk 3y agoHow datomic is Better/worse that symply using DynamoDB?
- warthog 3y agoWow I wonder what their incentive is in making this public and free
- 64operator 3y agoIs it Day-Toe-Mike? Duh-Tommic? Can somebody in PR or marketing help me pronouce this correctly in my head? It's causing me stress.
- zachallaun 3y agoday-tah-mick (think datum/atomic)
- nadagast 3y agoDay-tomic I believe
- 83457 3y agoDie Toma Toe I think.
- derefr 3y ago> Is it Open Source? > Datomic binaries are provided under the Apache 2 license which grants all the same rights to a work delivered in object form. So... no? (I say that, but "Datomic binaries" presumably refers to compiled JVM class files; and JVM bytecode is notoriously easy to decompile back to legible source code, with almost all identifiers intact. Would Apache-licensing a binary, imply that you have the right to decompile it, publish an Apache-licensed source-code repo of said decompilation, and then run your own FOSS project off of that?)
- Hixon10 3y agoIt had to be simple yes/no question, but they haven't managed with this :D
- 1letterunixname 3y agoGeneral PSA: Any open source startup touting their AGPL license is delusional. They will never be used at Google, Meta, or similar because of specific legal directives to avoid these kinds of licenses.
- cyberbanjo 3y agoGood thing this is not open source. They are licensing binaries.
- r00tbeer 3y agoHasn't everyone learned that "store all the history of changes" is an anti-feature? The Legal departments generally do not care for this (its just more data to make sure you deleted). And it makes schema migrations more painful as not only do you have to migrate the data you have now, but all of your historical data too! If you add a new property do you backfill it in your old data (to keep your code working)? Or start special casing old version in your code? Neither is pretty. If you want historical audit trails, make them intentional and subject to the same rules and patterns as your regular data.
- praptak 3y agoIt's free as in beer not as in freedom and the way they formulated that part made me wary of their intentions. (I'm still a huge fan of Clojure)