Lucas Cavalcanti & Edward Wible - Exploring four hidden superpowers of Datomic
ClojureTVRecommended by 1 HN commenter across 1 month, 2015–2024
talk · advanced · 2015–2024 on HN
A Clojure/conj 2014 talk by Lucas Cavalcanti and Edward Wible on four uses of Datomic. They cover HTTP caching, audit trails, mobile database sync and authorization, drawing on the immutable transaction log.
HN cites it as Nubank's account of building a bank on Datomic and Clojure, and for what Datomic's temporal model enables.
Up next
1 mo on HNCompiling and Optimizing Scripting Languages
Google TechTalks
Recommended 1× on HN · 2011–2020
5 mo on HNSimon Peyton Jones: Data Parallel Haskell
nuACM
Recommended 5× on HN · 2010–2017
5 mo on HNP vs. NP and the Computational Complexity Zoo
hackerdashery
Recommended 4× on HN · 2015–2026
12 mo on HNReverse emulating the NES to give it SUPER POWERS!
suckerpinch
Recommended 12× on HN · 2018–2025
4 mo on HNRustLatam 2019 - Without Boats: Zero-Cost Async IO
Rust Programming Language
Recommended 5× on HN · 2019–2020
10 mo on HNConway's Game Of Life in APL
Dyalog
Recommended 11× on HN · 2010–2024
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
Recommended 12× on HN · 2014–2024
11 mo on HNThe Value of Values with Rich Hickey
InfoQ
Recommended 10× on HN · 2014–2023
9 mo on HNAWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401)
Amazon Web Services
Recommended 12× on HN · 2019–2025
9 mo on HN"Turning the database inside out with Apache Samza" by Martin Kleppmann
Strange Loop Conference
Recommended 9× on HN · 2015–2025
7 mo on HNConflict Resolution for Eventual Consistency • Martin Kleppmann • GOTO 2016
GOTO Conferences
Recommended 3× on HN · 2017–2020
6 mo on HN01 - Course Introduction & Relational Model (CMU Databases Systems / Fall 2019)
CMU Database Group
Recommended 6× on HN · 2020–2023
6 comments from Hacker News
It's worthwhile watching Nubank's talk on how they manage these things with Datomic on the backend [0] - providing a "complete" (filtered) database to the client, http caches for queries based on tx-time, and syncing mobiles data via transactions-since. Takes care of said concerns nicely - I'm just implementing this stuff today however, so I'm not sure how well it'll work in practice. [0] - ▶ this video
Ed Wible is a founder of Nubank and chose Datomic. He and Lucas Cavalcanti gave a talk on it at Clojure/conj 2014. ▶ this video
1. High performance read/write of Scylla/Cassandra with high availability[1]. It has some limitations for OLTP workloads and require careful planning. Postgres without Citus is not really HA and even then companies would often invent custom sharding/cluster management system. 2. Powerful graph query language like Cypher. It might not perform well in real life, but my personal experience left me amazed[2]. There is a number of issues with SQL that could be addressed[3], but current standard is way too much prevalent. 3. Zero impedance mismatch between database and application representation. In database like Smalltalk GemStone it is really seamless experience for developer to write database code and application code[4]. To some extent, MongoDB success can be attributed to this aspect. 4. Datomic temporal capabilities[5]. It is hard to maintain temporal tables in postgres. There are some use cases where you really want query in point of time. Strictly not an OLTP feature, but I can see this be usefully in many scenarios. [1] link [2] link [3] link [4] link [5] ▶ this video Edited: independence -> impedance
I do remember Datomic and I think it's a great tool but I fell out of love with the Clojure ecosystem and JVM-based languages as a whole and don't think I'll be getting back into it/them. I do remember wanting to check out Datomic (I believe after seeing a talk on how it was being used at a bank in southern america?[0]), but I found it unreasonably hard to find and download/experiment with the community edition -- compare this to something like Postgres which is much more obvious, more F/OSS compliant (I understand that they need to make money) and Datomic doesn't really look that appealing to me these days. At this point in my learning of software craftmanship I can't do non-statically type-checked/inferenced languages anymore -- I almost never use JS without Typescript for example. Typed clojure was in relatively early stages when I was last actively using clojure, and I'm sure it's not bad (probably way more mature now), but it's a staple in other languages like Common Lisp (the declare form IIRC). The prevailing mood the clojure community seemed to be against static type checking and I just don't think I can jive with that anymore. Thinking this way right now Datomic wouldn't be a good fit for me pesonally but I believe that it is probably high quality paradigm. [EDIT] - I found the talk: ▶ this video [0]: link
nadam said 10 seconds, not minutes. we are using the starter version combined with dynamodb in production and we found the payment structure very clear; no obfuscation whatsoever, unlike a microsoft or adobe pricing matrix ;) (it's made by the same guy who made the very open source clojure programming language, btw, and he is very much against obfuscation) anyway, it's a competitive advantage for those guys' who are building a bank on top of it in brazil ( ▶ this video ). we feel we can avoid writing a lot of authorization and audit log code by using datomic, maybe u can save such work too.
Not mentioned in the article but most interesting to me this year is how these guys are "building a bank from scratch in Brazil with Datomic and Clojure": ▶ this video The future looks bright for the language, especially with applications like this.