I'm interested in what and how quick the development/testing cycle is. How quickly can you spin up, populate, and destroy a test instance for integration testing? How do you iterate on feature development against it?
Super fast, better than any SQL database or MongoDB.
Datomic (free and pro) has an "in memory" version that I used when developing my Clojure application. Makes firing off test-cases super simple and nice.
I used fixtures (edn) for the schema and for example data as well.
I would reload/dump/interact with the in-memory database in my REPL directly. Quite nice.
You can run a test instance (free/dev, which uses H2), that's no big deal to setup either, same as running a local MongoDB or PostgreSQL instance. Ease-of-configuration is on par with MongoDB but with sane defaults. It "just works".
I use environment variables for configuration, so the default Datomic database is just an in-memory instance, but I can point it to a localhost free instance easily.
Whether I use a free instance or an in-memory instance depends on whether or not I need the full transaction log. Typically no, but the migration toolkit I'm working on requires a persistent database so the defaults there are different for testing/development.
I'm seriously in love with a database that has a embedded and "real world" modes of operation with parity in their functionality (except for the log).
Datomic (free and pro) has an "in memory" version that I used when developing my Clojure application. Makes firing off test-cases super simple and nice.
I used fixtures (edn) for the schema and for example data as well.
I would reload/dump/interact with the in-memory database in my REPL directly. Quite nice.
You can run a test instance (free/dev, which uses H2), that's no big deal to setup either, same as running a local MongoDB or PostgreSQL instance. Ease-of-configuration is on par with MongoDB but with sane defaults. It "just works".
I use environment variables for configuration, so the default Datomic database is just an in-memory instance, but I can point it to a localhost free instance easily.
Whether I use a free instance or an in-memory instance depends on whether or not I need the full transaction log. Typically no, but the migration toolkit I'm working on requires a persistent database so the defaults there are different for testing/development.
I'm seriously in love with a database that has a embedded and "real world" modes of operation with parity in their functionality (except for the log).