«

Moving To Cloud

Datomic Cloud is ideal for greenfield projects where you need

  • quick and easy access to Datomic on AWS
  • more ops ability with less responsibility

In order to take greatest advantage of AWS features, Cloud uses a storage format different from that used in Datomic Pro.

We are currently designing migration tools for users who want to move from Datomic Pro to Cloud, but these tools are not part of the initial release. If, after reviewing the differences outlined below, you want to migrate from Datomic Pro to Cloud, we want to hear from you, and help you plan.

Similarities Between Cloud and Datomic Pro

The information model is what makes Datomic Datomic, and is entirely the same between Cloud and Datomic Pro. This includes

  • datoms, entities, and indexes
  • ACID transactions
  • the universal schema
  • Datalog query and structural pull
  • the indelible, accumulate only model of time
  • the database as a value

Difference 1: AWS Integration

Datomic Cloud is tightly integrated with AWS.

This has three implications:

  • Greenfield Datomic apps on AWS should target Cloud
  • Datomic apps that do not run on AWS must target Datomic Pro
  • Existing Datomic apps on AWS can be ported to Cloud once the migration tools are available.

Difference 2: Clients and Peers

Datomic Pro supports client or peer access, while Cloud supports only client access.

This has two implications:

  • Apps that target the client API are much easier to move between Datomic Pro and Cloud.
  • Apps that make heavy use of peer locality will require substantial alteration for Cloud.

See Clients and Peers for more information.

Difference 3: Ions

Datomic lets you run your code in process with your data. In Datomic Pro, this takes the form of functions installed in a database, or functions you add to the classpath.

Datomic Cloud's tight AWS integration make this capability much more powerful. Ions let you run your entire application on Datomic, with reproducible deployment, elastic autoscaling, and integration via AWS Lambda events and AWS API Gateway.

Other Differences

In each of the areas in the table below, we believe that the Cloud architecture can offer capabilities that will be superior to those currently in Datomic Pro:

Datomic Pro Cloud (Future)
user partition control auto partitioning (now), partition routing
limited search capability CloudSearch integration
byte array type LOB types

These and other differences are explained below.

Auto Partitioning

The peer model supports two kinds of tempids: #db/id structures and strings. The client model supports only strings. This makes client drivers and client programs easier to write and use, and it eliminates partition control as a user-space concern.

No Symbol Magic

In an effort to transparently reach languages lacking a symbolic type, Datomic Pro will in some situations magically convert strings into symbolic types, e.g. ":hello" to :hello.

Cloud does not perform this kind of magic, and client libraries are always responsible for mapping edn types to sensible language-local representations.

No Excision

Cloud does not currently support Excision.