Datomic Update: Client API, Unlimited Peers, Enterprise Edition, and More

28 October 2016

We are pleased to announce that the latest (0.9.5530) release of Datomic includes a set of new features and licensing changes to address needs identified by our customers:



In addition to the peer model, Datomic now includes a Client API suitable for smaller, short lived processes, e.g. microservices.

The various tiers of the Datomic Pro license model have been simplified to a single license with no restriction on peer count.

We have introduced an Enterprise license tier for users who need customized pricing, support, or licensing terms.

Tempids and explicit partitions are now optional, simplifying code for the many programs that do not care about them.

Schema install and update are now implicit, and do not require explicit :db.install/attribute or :db.update/attribute datoms.



Building On a Solid Foundation

Before talking about what is new, it is important to talk about what is unchanged. We built Datomic believing that the

getting time, process, and perception right

sound data model

ACID transactions

Datalog query

minimal schema

separate reads and writes

programming with data

Datomic has delivered these ideas with a discipline that minimizes breaking API change. As a result, Datomic users have been able to focus on their business problems without having to worry about changing semantics in their database. Before talking about what is new, it is important to talk about what is unchanged. We built Datomic believing that the Rationale is a sound foundation for an information system, and experience has proven this out. We have not retracted a word of the rationale since day one, and are not doing so today. Datomic’s core ideas are unchanged:Datomic has delivered these ideas with a discipline that minimizes breaking API change. As a result, Datomic users have been able to focus on their business problems without having to worry about changing semantics in their database.



Client API

Datomic’s peer library puts database query in your own application process. This provides several benefits, but at the price of a heavier dependency (both in code and in memory requirements) than a traditional client.



A smaller footprint is useful in environments that have operational limitations, or where processes are small or short-lived. The new Datomic client API addresses this need. Lightweight clients connect to



Existing peers are unchanged, and you can mix and match peer and client applications as you see fit within the same Datomic install. Clients and peers are described in detail in the new Datomic’s peer library puts database query in your own application process. This provides several benefits, but at the price of a heavier dependency (both in code and in memory requirements) than a traditional client.A smaller footprint is useful in environments that have operational limitations, or where processes are small or short-lived. The new Datomic client API addresses this need. Lightweight clients connect to Peer Servers , which are peers that run in a separate address space.Existing peers are unchanged, and you can mix and match peer and client applications as you see fit within the same Datomic install. Clients and peers are described in detail in the new clients and peers section of the docs.







Unlimited Peers

Flexibility in Peer use has been the most often-requested update to Datomic. You are solving complex problems using cutting edge technologies and architectures. Your tools should allow you to design the system that best fits your needs. Datomic’s new licensing model gives all users - Starter, Pro and Enterprise - the ability to design for and deploy as many Peer processes (and Clients!) as their systems require. Today’s release represents a massive upgrade to the potential of each (new and existing) Datomic installation.

Pro Starter License

The Pro Starter license provides a no-cost way to try Datomic. You get a perpetual license plus a year of software upgrades for free. Starting with this release, Pro Starter includes all the features of a Pro license, including

unlimited peers

clients

High Availability (HA)

integrated memcached

Enterprise Tier

Datomic has a number of enterprise customers already. They distinguish themselves by wanting

custom license terms

custom pricing for larger installations

custom support terms

custom development

If you match one or more of these criteria, The Pro Starter license provides a no-cost way to try Datomic. You get a perpetual license plus a year of software upgrades for free. Starting with this release, Pro Starter includes all the features of a Pro license, includingDatomic has a number of enterprise customers already. They distinguish themselves by wantingIf you match one or more of these criteria, contact us to discuss an Enterprise license.





Tempid and Partition Defaults



Datomic’s tempids provide a way to



Starting with the current release of Datomic:

tempids are optional

when you need a tempid to coordinate the relationship between two entities, you can use an ordinary string instead of a tempid structure, and that string can be meaningful to readers of your code

the existing tempid data structure and API continue to be supported unchanged. Use them if you want them.

Clients will support string tempids only. Datomic’s tempids provide a way to partition new entities, encoding a locality hint directly in transactions. This feature is powerful, but rarely used, and the API and data structure for tempids are an inconvenience for the majority of users, who do not need or want partition control.Starting with the current release of Datomic:Clients will support string tempids only.

Schema Install and Update

Transactions that change attribute schema must include either :db.install/attribute (to create an attribute) or:db.alter/attribute (to change an existing attribute). The new release of Datomic Transactions that change attribute schema must include either :db.install/attribute (to create an attribute) or:db.alter/attribute (to change an existing attribute). The new release of Datomic infers the need for these datoms and adds them to your transaction automatically, reducing the verbosity of schema data.

Conclusion

We are very excited about the additions and changes to Datomic. To celebrate, we will be offering a 20% discount on new Datomic purchases through the end of February 2017. We hope you take advantage of the new features and this discount opportunity and please feel free to reach out to us at anytime.

The features described above are additive and opt-in, so take advantage of them as and when you please.Each of these changes is described in more detail below.With today’s release, we are making available the alpha version of the open source Client library for Clojure. The Java library will be released shortly. We also have plans to both create more language libraries for Client and enable our customers to create their own. We are interested in your feedback on the Client API itself and the priority of our language reach efforts. As of today, we have enabled a customer feedback portal, accessible via the "Suggest Features" link in the top navigation of the my.datomic.com dashboard, where you can help us prioritize our efforts in this (and many other) areas.