Fork me on GitHub

Morning… Does anyone have any solid recommendations for Datomic learning resources? (asking for reasons)


Also, does anyone have any smart hacks around the in-memory only status of the completely free version of Datomic?


(clearly I know where the Datomic website is, I mean non-Cognitect resources that are warts and all and aimed at the neophyte, in case that was not clear 😉 )


@maleghast I'm going to be completely useless as usual and say I didn't find anything beyond the odd blog post and Cognitect's docs. I struggled to learn from them. Not sure why, just didn't suit my learning style.


@agile_geek - Thanks for trying, honestly 🙂 Your answer is rather hence my question, i.e. I’ve tried to read the Cognitect stuff about Datomic, and it’s REALLY not clicking… I know people that use it, that are very happy with it, and I am sure that if I could get my foot in the Datomic door I would love it too, plus I have a (potential) use-case for it that might be really useful, but I need to find something that I click with in terms of learning...


I probably need to get my head around Onyx as well for related but different reasons… sorry for the vague-slacking 🙂


I found Onyx much easier to grok. Also @michaeldrogalis videos of various talks are awesome resources about how it's architected.


@agile_geek - Thanks, I will - if I EVER get time… 😉


Current @TODO list outside of work: 1. Grok Boot 2. Grok Datomic 3. Grok Onyx 4. Build Super Secret Proof of Concept using #1-3 5. Spend time with wife and children 6. Relax, Read, watch Man in the High Castle 7. Sleep (maybe) 8. Exercise 9. Finish at least one of my creative projects before the end of 2017


I am fairly sure that I need to scale it down a bit or take some time out of day-to-day work...


we shall see...


I'll take 1 & 6 out of those...


I would say don't skimp on 5, 7 or 8 otherwise none of the rest are going to happen


@maleghast your todo list looks vaguely familiar... have you considered cloning yourself ?


a lot of todos, might require quit the job, take your own savings for some time, do cool stuff, find new client


this is my way 😄


@mariusz_jachimowicz - This may well happen...


@agile_geek - You are quite right there


(it is not in order of priority, but in order of how came out of my head in the moment)


@thomas - I have considered it, yes, but then I realised that I would have a new @TODO that was “Grok cloning technology” and another “Clone Self” and another “nurture clone to self-sufficient age” and another “educate clone sufficiently to assist me"


That was the point at which I realised it was an interesting idea but unlikely to help me with my time and resource management 😉


@maleghast the #datomic channel is a friendly place. Could also direct any ultra newbie questions my way (and I will route them accordingly)


@jonpither - Thanks very much 🙂 I will peruse / lurk the channel for a day or two and then ask some questions… In the meantime, how do you get around the whole “it’s only in memory” thing with the non-Pro version, or am I just worrying about nothing?


@seancorfield - Are you offering to take some of my @TODOs on..?


I think you are mistaken. You can run datomic against a persistent store without a pro license


Oh? That’s cool, but this also speaks volumes about what I was inferring above - that Cognitect’s website is confusing and weird...


I spent some time on the site last night and it seemed__ to be telling me that the non-Pro version was in-mem only, and then if I was prepared to give them my details and get a "starter key” I could get Pro (for a year) at no £ / $ cost and that would work with persistent storage.


Based on what I was reading I didn’t want to start the countdown clock to needing $5k… 😉


I would defo encourage you to find the misleading text and report it.... I havent read it minutely, but I thought the recent changes to made it clearer


Datomic Free Datomic Free is a good fit for open source applications. Datomic Free enables seamless migration of your data to Datomic Pro, and your code is completely compatible. Datomic Free includes a memory database and embedded Datomic Datalog. The Datomic Free transactor is limited to 2 simultaneous peers and embedded storage and does not support Datomic Clients. Because the components are redistributable, it's great for applications that you want to share. You can download Datomic Free and use it right away - neither you nor your users need to sign up with us.


I think that’s the point and maybe there is no countdown clock on “Starter” but I do need to register with Cognitect and get a key to get "Support Supports all Storages"


The 1 year is maintenance and updates, though the licence is perpetual, so basically if one wants updates past the 1 year mark then one needs to ask nicely for a new licence - I get it now...


Where does it say supports all storages? The big recent change is for that to be across all versions


I think it may have more to do with reading at 0230h than anything else…


@jonpither At the top above the grid that lays out the licences, Starter, Pro and Enterprise


Yeah. ALL versions have unlimited peers and all storages


whereas Datomic Free still exists but is still limited to 2 peers, no clients and no persistent storage (bottom of the page)


but requires no registration with Cognitect


So starter is new basically


It would appear


I must admit to liking the idea of Datomic for a while but the licensing puts me off using it for any kind of start up idea.


@agile_geek I would say starter is appealing tho?


$5k / annum is not a lot of money in an annual IT budget, and a lot less than some other paid versions of other datastores - don’t get me started about Commercial Neo4J licences...


@jonpither not really. Unless you can be certain you are going to make enough money in year two to stump up $5000 you would be stuck with no upgrades and with a newish product there are bound to be issues you need upgrades for.


I mean as long as the business / platform you are building needs a db like Datomic, that is - it’s clearly not a requirement__ for a lot of ideas.


@maleghast for large orgs yes. But as I said it would dissuade me from using it in a startup


@agile_geek interesting. TBH I havent scrutinised it properly until now


..and I'm an old cynic and wary of vendor lockin


Be interesting the official response to that


@agile_geek - You can just ask for another key after 12 months, for starter, that is.


Once your business has either the load / traffic need for Pro, or the money to afford it and “play fair” ‘cos you are making money you upgrade and get the other benefits, but in the meantime just get a new key every year?


@maleghast OK wasn't aware of that but if the new key is free and includes upgrades then why have a year restriction at all?


To make people come back and ask, so that they get a bite of the sales cherry, I expect


fair enough in my head, but YMMV and I would have no judgement either way.


I'd still not consider it for a startup unless it saved me a lot of time then it might be worth the investment and lockin


@agile_geek - The lock-in is a concern, but I (may) need a Time Series DB, and I feel happier subjecting myself to vendor lock-in from Cognitect than from Influx or with RiakTSD, at the moment, all things being equal.


True. Like I said I'd just need a good justification. TBH I am slightly jaded by the whole No-SQL thing. It became a band wagon to jump on without a good reason in an awful lot of orgs.


Maybe my very painful experience with HBase has scarred me for life 😞


@agile_geek - Oh Hell yes, I am the first one to say things like “why don’t we use Postgres for now and if we decide to store JSON documents as well as RDBMS tables we can” and “right tool for right job noSQL fanboi!"


If this idea “happens” the stack will include RDBMS and Document Store(s) as well as a TSD, for reasons - sorry again for the vagueslacking


@agile_geek - Also, you are a braver man than I; HBase scares me and I’ve been dodging it and urging other choices for 3 jobs now… I know I am a coward, but I’ve heard the war stories.


@maleghast not my choice. I demonstrated it's extreme fragility to the "Enterprise Architect" at my last client with loads of evidence to back it up but they went ahead with it anyway as they'd bought a package support deal from HortonWorks and HBase was part of it. We are in a "post-truth" era so why was I expecting evidence to matter?


@agile_geek your assessment wasn't fair...


I spent almost 3 months on a PoC that conclusively proved you couldn't get the resilience or the performance they required without a lot of work and about 5 times as many region servers as HW recommended


Yikes, that is a new war story, but just as frightening, if not more so than the stuff I had heard about Hbase being very inflexible and hard to work with in general.


to paraphrase Nick Cage in "Gone in 60 Seconds" they just were just "..self-Indulgent wieners with too much bloody money!"


HBase, so good in theory. 🙂


What like low-fat, high fibre diets, running and voting Liberal Democrat? 😉


$5k/year is roughly 2 months salary of an employee?


@maleghast The datomic talk from Strangeloop 2015 I found illuminating


i think i did anyway, haven’t actually used it since


@glenjamin Depends on the employee - not many code-centric businesses paying their employees $30k / annum


Re Strangeloop talk, I will source it - thanks 🙂


oh right, nearer 1 month then


for a “startup”, whatever that actually means these days


Well, somewhere between 2weeks and a month depending on the role, their experience and whatnot, I imagine


Either way, @jonpither managed to decode the Cognitect / Datomic site enough for me to realise that I was panicking about nothing and so Rich and Stuart have my data now, and I have a 12month licence key and a copy of Datomic Pro. I will be playing with it soon...


i like datastax's startup licensing - it's free until your revenues exceed $5M or your raises exceed $50M


Good morning folks


Just catching up. Can completely relate to @maleghast 's TODO list


@mccraigmccraig that seems very generous IMHO.


@mccraigmccraig - That’s remarkably sensible 🙂 That’s commercial Cassandra, right?


@davesnowdon - Good morning; it’s good to know I am not alone; thanks 🙂 *fist-bump of solidarity*


@maleghast yeah, commercial cassandra - i'm currently using it because of the spark integration which isn't nearly so useful without the commercial components


@mccraigmccraig - Cool 🙂 I’ve done one prototype project with Cassandra and I really don’t think I was getting the DB to notice it was being used tbh… I nearly had a brush with it via a mad architect at my last job trying to get us to build a Customer 360 system using Atlas, but I’ve really never used it in anger at all. Do you rate it, and how nicely does it play with Clojure (just to keep us slightly on topic 😉 )?


the homepage seems to make a lot of promises


iirc it’s a “columnar” store? whatever that means


@maleghast i like cassandra - it's a big change from a relational db and takes some getting used to, but it's behaved very well for me so far


@glenjamin all the current docs are on the datastax site... there's a tonne of out of date stuff from the old days on different sites out there


That seems like as ringing an endorsement as I’ve ever heard a coder give to a DB of any stripe to be honest 🙂


@maleghast it plays very well with clojure too - i'm using which is great


i have a higher-level client built on that too, which is open-source, but i need to push a tonne of changes from our product repo back out to the open-source repo


ah ok, i think i’m following this


it’s fairly similar to a normal table-based RDBMS, but you can’t join and storage is always partitioned?


@glenjamin it presents a query interface which looks like an RDBMS, without joins - there are strict limits on the queries you can do against a given table though


the tables seem to map more closely to indexes you’d have in an RDBMS from a modelling pov?


@glenjamin correct - you often create tables to reflect a query you want to do, and denormalize to those tables


are there any tools in cassandra itself to do that denorming, or is that up to you?


recently there are materialized views which will do lots of denorming for you


though if you want to denorm a collection column by unrolling it then you are still on your own


a lot of what my higher-level client does is look after the denormalizations for you


So, I am assuming that the up-side is speed and consistency of writes..?


@maleghast linear throughput scalability and multi-datacenter replication are the big wins


roughly, it doesn't do anything that doesn't scale linearly


Right, so you can make it eat high volumes of data and you can pull ‘em out as well and you can do to or from the nearest DC


yes, and you can nuke one or more of your DCs and your app keeps on rolling.... and if you suddenly double your customer base, all you have to do is double your node count


until it all falls apart of course, but c'est la vie... there are deployments out there with many thousands of nodes, which is quite impressive


Yes, that is very impressive, truly. 1000s of nodes is both impressive and rather intimidating, but wow!


the really nice thing (for me) that the datastax commercial distribution offers over the open-source cassandra is a hive metastore for the spark integration - it means that i can point tableau at cassandra and do interactive analytic queries just like it was a vanilla RDBMS


Oh wow, that is VERY cool


so my big question on datomic is: is it open source? I'm happy to pay for a supported database (like c*) I'm not happy to let the vendor have the ability to take it away


it’s not open source


Paradox, dBase, FoxPro


I've had too many databases shot out from underneath me


dBase III+ -> Clipper oh those were the days.... 1989 🙂


Reminder about drinks tomorrow evening at the Pack and Carriage nr Euston for those around


hey all 🙂 new to clojure and the community


I've been writing some simple stuff - I'd like to replace some of my tooling with clojure versions. It's all CLI stuff to help me in my day job.


But it seems very old.


Any pointers to what I might use?


gosh I'm not clued up on the CLI at all


That's what I looked at. It's just that the plugin hasn't been touched in 4 years.


could be because it just works and is relatively small in terms of what it does


Clojure is that robust 🙂


Well I'll try and see.


mattford there is some cljs node stuff that might be better for cli tools


depends on what you are doing obviously