Datascript and Datomic: Data Modeling for Heroes - Mark Bastian

Поділитися
Вставка
  • Опубліковано 30 чер 2024
  • Datomic and Datascript are related databases that allow you to model and query data as facts. Datomic is a full-blown back-end database implementation with a JVM client library. Datascript is a similar library providing an in-memory fact store that can be used in JVM or Javascript environments. Once you understand the simplicity and power of these databases and how their data-oriented schemas work, you will feel as if you've been granted superhuman data modeling and querying powers. I'll be demonstrating how these work by modeling relationships between various superheroes, of course.
    Mark Bastian (410 B Session 2)
    Presented at the 4th Annual Clearwater Development Conference in Boise Idaho. This year had 600 attendees from all over the valley. You can watch the Keynote here: • Clearwater 2018 Develo...
  • Наука та технологія

КОМЕНТАРІ • 8

  • @hondinatos
    @hondinatos Рік тому

    Great talk. Shows the essence of the technology and how It compares with SQL.

  • @JN-kf3kf
    @JN-kf3kf 5 років тому +3

    Mark, Clearwater.. thanks for posting this. It clears up a lot of questions on some very interesting details... thank you!

  • @RaphaelSaunier
    @RaphaelSaunier 4 роки тому +4

    Great example of Datalog's expressivity at 22:57!

  • @mikl2345
    @mikl2345 3 роки тому +2

    Thanks Mark. I hadn't realised that in datomic using a unique/identity can be a stand in for using temp ids to link entities inserted in the same transaction, cool. In the docs unique identity seemed to me mainly sold as enabling "upserts", but "upserting within a transaction" like this makes more sense to me as being useful/sound than doing so outside of one, at least that's my take on it at the moment. P.S. This is one of the best practical presentations on datomic I've seen and I've watched many.

    • @markbastian774
      @markbastian774 3 роки тому +2

      Thanks for watching. I'm glad you enjoyed it!

  • @sfyire
    @sfyire 4 роки тому +1

    Helped to clear up a lot of questions I had around schema creation and different query mechanisms

  • @JohnLeidegren
    @JohnLeidegren 4 роки тому +3

    There's an important difference between :db.unique/value and :db.unique/identity and that is that :db.unique/identity implies upsert behavior. :db.unique/value does not. This is somewhat glossed over but it has a rather important implication. If you have an attribute with :db.unique/identity an transaction will either insert/update that entity, while a :db.unique/value will fail, i.e. prevent the transaction. If you want to enforce for example a unique account name throughout your database you can't simply slap :db.unique/identity on it and expect it to work. You need to do additional concurrency control with CAS.

  • @code_explorations
    @code_explorations 2 роки тому

    This is very valuable; thank you.