Hacker News new | ask | show | jobs
by rbolkey 4602 days ago
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?
1 comments

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).