Questions tagged [datomic]

Datomic is a database of flexible, time-based facts, supporting queries and joins, with elastic scalability, and ACID transactions.

From the datomic website:

Datomic is a database of flexible, time-based facts, supporting queries and joins, with elastic scalability, and ACID transactions.

Resources:

Videos:


Related tags :

430 questions
76
votes
4 answers

When should I use Datomic?

I'm intrigued in the database service Datomic, but I'm not sure if it fits the needs of the projects I work on. When is Datomic a good choice, and when should it be avoided?
Mantas Vidutis
  • 16,376
  • 20
  • 76
  • 92
64
votes
2 answers

Data modeling in Datomic

I've been looking into Datomic, and it looks really interesting. But while there seems to be very good information on how Datomic works technically, I have not seen much on how one should think about data modeling. What are some best practices for…
Tobias Furuholm
  • 4,727
  • 4
  • 30
  • 39
53
votes
2 answers

General-purpose databases that never delete or update data in-place

I'm very much inspired by the approach to data management advocated by Rich Hickey, and implemented in Datomic, where the data is never mutated in-place, all the versions are always preserved and query-able, and the time is a first-class concept. Of…
Ivan Krechetov
  • 18,802
  • 8
  • 49
  • 60
37
votes
1 answer

How does the storage backend influence Datomic?

How should I pick the backend storage service for Datomic? Is it a matter of preference to select, say, DynamoDB instead of Postgres, or does each option have different tradeoffs? If so, what are they?
konr
  • 2,545
  • 2
  • 20
  • 38
33
votes
1 answer

How does Datomic compare to Neo4j?

I am looking at integrating Neo4j into a Clojure system I am building. The first question I was asked was why I didn't use Datomic. Does anyone have a good answer for this? I have heard of and seen videos on Datomic, but I don't know enough about…
yazz.com
  • 57,320
  • 66
  • 234
  • 385
28
votes
5 answers

Get all fields from a Datomic entity

The 'Embedded' section of the Datomic Queries and Rules document says: Query languages like SQL are oriented around a client-server model where, in a single conversaton, you are going to have to both: Answer your fundamental question, e.g. who…
deprecated
  • 5,142
  • 3
  • 41
  • 62
21
votes
3 answers

lein REPL server launch timed out

in a liberator based clojure project we are using datomic as DB. After migrating our local dev DB to a S3 hosted one and adding the needed dependencies on our project.clj we cannot launch the REPL but the Liberator stack runs fine through lein…
Jaime Agudo
  • 8,076
  • 4
  • 30
  • 35
20
votes
2 answers

How to get a persisting local datomic database?

With Datomic, I am confused as to how to get a local database to play around with If I type: >>(ns datomic-tut (:use [datomic.api :as d])) nil >>(d/create-database "datomic:mem://hello") true >> (d/connect "datomic:mem://hello") #
zcaudate
  • 13,998
  • 7
  • 64
  • 124
19
votes
3 answers

What does the @ (at sign) mean in Clojure?

I found this line of Clojure code: @(d/transact conn schema-tx). It's a Datomic statement that creates a database schema. I couldn't find anything relevant on Google due to difficulties searching for characters like "@". What does the 'at' sign mean…
Felipe
  • 16,649
  • 11
  • 68
  • 92
16
votes
2 answers

How do I undo or reverse a transaction in datomic?

I committed a transaction to datomic accidentally and I want to "undo" the whole transaction. I know exactly which transaction it is and I can see its datoms, but I don't know how to get from there to a rolled-back transaction.
Francis Avila
  • 31,233
  • 6
  • 58
  • 96
15
votes
2 answers

Retrieve Most Recent Entity from Datomic

I'm interested in entities and their timestamps. Essentially, I want a time-sorted list of entities. To that end, I've composed the following functions: (defn return-posts "grabs all posts from Datomic" [] (d/q '[:find ?title ?body ?slug …
benkay
  • 589
  • 5
  • 14
14
votes
6 answers

Equivalent of SQL "limit" clause in Datomic

Title sort of says it all, but say I have a simple query as follows: (q '[:find ?c ?n :where [?c :my-thing/its-attribute ?n]] (d/db conn)) against a schema like [{:db/id (d/tempid :db.part/db) :db/ident :my-thing/its-attribute :db/valueType…
JohnJ
  • 4,753
  • 2
  • 28
  • 40
13
votes
2 answers

modelling multiple many-to-many relationships in datomic

Maybe I'm still thinking sql but I'm having trouble writing the datomic schema for a simple blog. I don't really understand the :db/cardinality attribute and what it means. In terms of this type of system, how do we model these relationships The…
zcaudate
  • 13,998
  • 7
  • 64
  • 124
12
votes
4 answers

Getting the id of an inserted entity in datomic?

After I run a transaction in datomic to insert a value, how I can use the return value of the transaction to get the ids of any entities that were created? Here is a sample of the return value I get after an…
TG-T
  • 2,174
  • 3
  • 19
  • 20
12
votes
1 answer

In Datomic, how do I get a timeline view of the changes made to the values of a particular entity?

I'm following the tutorial, http://www.datomic.com/company/resources/tutorial but I think I am missing a simple piece of the puzzle of how to access Datomic's time model. If I do a series of adds and retracts ;; DO a series of transactions ;;…
zcaudate
  • 13,998
  • 7
  • 64
  • 124
1
2 3
28 29