A guide to the Datomic licensing changes
Shockwaves rang out through the Clojuresphere today with the news that Datomic is changing their licensing to drop the per-process limits. This is big news if you were limited in the number of processes you wanted to run.
The major changes in a nutshell:
- There are now no limits on process count
- Datomic Starter is now limited to one year of updates, then you need to pay $5,000 for Datomic Pro, or stay on the current version when your license expires.
- Datomic Starter can now run the Memcached cache.
- All Datomic Pro licenses are now $5,000, and annual maintenance is also $5,000/year.
If I’ve got any of the following wrong, please get in touch via email and I’ll update my post.
The old pricing model
Datomic launched in March 2012 with a paid option and in July 2012 added Datomic Free. In November 2013, Cognitect launched Datomic Pro Starter Edition. The old pricing page is on archive.org here. This model was easy to understand, as it mapped well to existing database licensing patterns of ‘perpetually free with limitations’ or ‘paid without limitations on a per node basis’.
Datomic Free
- Free (as the name indicates)
- Limited to storing data in memory on the transactor, or on the transactor’s disk.
- Freely redistributable (i.e. in on-premise or open source software)
- Only able to run two peers (clients) and a single transactor. If the single transactor fails, then you won’t be able to write to the database until another one starts.
- Community support
Datomic Pro Starter Edition
- Free
- Support for all storage backends (SQL, DynamoDB, Cassandra, Riak, Couchbase, Infinispan)
- Limited to 2 peers and a single transactor
- Not redistributable
- Community support
- Limited to 1 year of maintenance and software updates, though you were able to renew your Datomic Pro Starter Edition license each year for free (more on this later).
- When your updates expire, you can continue using that version of Datomic, but you won’t be able to use any future versions.
Datomic Pro
- Paid
- Support for all storage backends
- Able to run a second transactor in HA standby to take over if the first one fails or for rolling updates.
- Ability to use Memcache to cache segments rather than all peers needing to talk directly to the storage backend.
- Support is included while maintenance is current.
- Pricing scaled linearly from $3,000 for five processes (this includes peers and transactors) up to 30 processes for $16,000. You could upgrade later to higher tiers for the price difference between the old license and the new license.
- Annual maintenance for support and updates was half of the upfront license price
- If an organisation had special needs (more processes, custom EULA, 24x7 support, redistributing Datomic e.t.c.) then you could talk to Cognitect to negotiate terms.
The new model
All versions of Datomic apart from Free now support unlimited peers, high availability, Memcached support, and all storages (more on storage later). This is a significant change, as you can now use Datomic in an almost unlimited fashion for free. There is also a new Client API which is suitable for smaller, short-lived processes, like microservices and serverless computing. The changes are smart, as it frees users up from having to architect their systems around their Datomic license limitations. The new pricing model rearranges the tiers. There is now Datomic Free (unchanged), Datomic Starter, Datomic Pro, and Datomic Enterprise.
Datomic Starter
- Similar intent to the previous Datomic Pro Starter
- Free
- Maintenance and updates limited to 1 year. However, based on discussion on Hacker News, it seems that you can no longer renew your Datomic Starter license. This means that you will need to pay for Datomic Pro to get updates after one year. You can still use whichever version was available when your updates expire. Discussion in the #datomic Slack channel on clojurians matches up with this too.
- Update: Alex Miller said that you can sign up for multiple Datomic Starter licenses for different systems you’re running.
Datomic Pro
- Similar intent to the previous Datomic Pro
- $5,000/year per system including maintenance and updates. For organisations using 16 processes or less, then maintenance will be more expensive (previously $1,500 - $4,500 depending on process count).
- 2 Day Business-Hours-Only Support. The former Datomic Pro didn’t have a published SLA for support, but I suspect that this is just formalising what was previously there.
Datomic Enterprise
- Enterprise integration support (professional services)
- Negotiated license terms
- 24x7 Support
- While this is a new tier in the pricing grid, these options were available as a “Contact Us” note on the former Datomic Pro.
Other changes
Datomic has a snazzy new documentation site. It also looks like as part of the licensing changes, Riak, Couchbase, and Infinispan are now considered legacy storage and are only available to be used under an enterprise license. Standard editions of Datomic only support SQL, DynamodDB, and Cassandra. This change hasn’t been mentioned on the Datomic mailing list or release notes, but probably will be soon.
Datomic has deprecated the REST API in favour of the new Client API.
There is also a new customer feedback portal where you can suggest features. You can access this after logging in to my.datomic.com.
Summary
If you are a Datomic Pro user then your maintenance is probably going to be higher, although in absolute terms it’s still not a lot compared to developer salaries. If you were on Datomic Pro Starter and want to stay current, then you are now looking at moving Datomic Free, or paying $5,000/year for Datomic Pro. If you were using Riak, Couchbase, or Infinispan then it seems like you’ll need to get Datomic Enterprise.
Datomic from the beginning has always felt like a database that understood the Cloud, and the zeitgeist of computing. It supported AWS DynamoDB and CloudFormation from early on, and their architecture has always felt well suited to cloud systems. The license changes to accommodate the trend towards microservices and serverless computing are a continuation of that.