Tuesday, June 18, 2019

Return Maps

Most Datomic queries return tuples, but sometimes you just want maps.  Today's release of the Datomic Cloud client library adds return maps to Datomic datalog.  For example, the following query uses the new :keys clause to request maps with :artist and :release keys:

[:find ?artist-name ?release-name
 :keys artist release
 :where [?release :release/name ?release-name]
 [?release :release/artists ?artist]
 [?artist :artist/name ?artist-name]]

Running against the mbrainz-sample database, this query returns:

#{{:artist "George Jones" :release "With Love"}
  {:artist "Shocking Blue" :release "Hello Darkness / Pickin' Tomatoes"} 
  {:artist "Junipher Greene" :release "Friendship"}

To try return maps, you can

Thursday, May 23, 2019

HTTP Direct for Datomic Cloud

    Datomic Cloud is designed to be a complete solution for Clojure application development on AWS. In particular, you can implement web services as Datomic ions behind AWS API Gateway.

    The latest release of Datomic Cloud adds HTTP Direct, which lets you connect an API Gateway endpoint directly to a Production Topology Compute Group as shown below: 

    HTTP Direct provides better performance and simpler operation than AWS Lambda Proxy Integration. The latter option continues to be supported on the Solo Topology, which does not include the Network Load Balancer required for HTTP Direct.

    To try out HTTP Direct:
    1. Get the latest release of Datomic Cloud.
    2. Work through the HTTP Direct Tutorial.

    Tuesday, October 9, 2018

    Valcache for Datomic On-Prem

    Everything gets better when data moves closer to processing. Datomic can extensively cache its immutable data without concern for coordination or invalidation. With the 'valcache' feature in today's Datomic On-Prem release you can use your local SSDs as large, durable per-process caches, on both transactors and peers. Valcache can improve performance, reduce the read load on storage and stay hot across process restarts.

    To get started with Valcache for  Datomic On-Prem:

    Friday, September 7, 2018

    Datomic Query Groups

    Datomic system can grow to meet the needs of your applications with query groups.

    Query groups provide one or more applications in a system with independent, elastically scalable query resources and working set caches. You can deploy different Datomic Ion applications to different query groups.

    Query groups can host different application development stages, each running their own revision of an Ion application.

    To learn more about query groups, read the new Planning Your System documentation.

    Datomic Cloud on AWS Marketplace

    Wednesday, August 15, 2018

    Parameterizing Datomic Ion Applications

    Today's Datomic Cloud release provides an easy way to parameterize ion applications.


    At runtime, applications need access to configuration data such as the name of a Datomic database. There are several challenges to consider:

    • Configuration values have a lifecycle that is independent of application source code. They should not be hard-coded in the application, and should be managed separately from source code.
    • Applications need a way to obtain their configuration values at runtime.
    • Configuration values may be sensitive, and should not be stored or conveyed as plaintext.
    Parameters are a solution to these challenges.

    Ion Parameters

    Before running your app, you store parameter values under hierarchical keys in AWS Systems Manager Parameter Store. At runtime, your app uses our new APIs to form the keys and read the values. This provides:
    • independent lifecycle for parameter values
    • encryption for sensitive data
    • granular IAM permissions

    Get Started

    To get started using Datomic's parameter support:

    Wednesday, July 11, 2018

    Datomic Cloud Monitoring and Ion Cast

    The new datomic.ion.cast library lets your application produce monitoring data that are integrated with Datomic's support for AWS CloudWatch.

    Datomic Cloud and AWS CloudWatch

    AWS CloudWatch provides a powerful set of tools for monitoring a software system running on AWS:
    • Collect and track CloudWatch Metrics -- variables that measure the behavior of your system.
    • Configure CloudWatch Alarms to notify operations or take other automated steps when potential problems arise.
    • Monitor, store, and search CloudWatch Logs across all your AWS resources.
    • Create CloudWatch Dashboards that provide a single overview for monitoring your systems.
    Datomic Cloud is fully integrated with all of these AWS monitoring tools. On the producing side, Datomic creates metrics and logs; and on the consuming side, Datomic organizes metrics in custom dashboards like this Production Dashboard:

    Production Dashboard


    With the introduction of Datomic Ions, your entire application can run on Datomic Cloud nodes. The datomic.ion.cast namespace lets Ion application code add your own monitoring data alongside the monitoring data already being produced by Datomic.  Cast supports four categories of monitoring data:
    1. An event is an ordinary occurence that is of interest to an operator, such as start and stop events for a process or activity.
    2. An alert is an extraordinary occurrence that requires operator intervention, such as the failure of some important process.
    3. Dev is information of interest only to developers, e.g. fine-grained logging to troubleshoot a problem during development. Dev data can be much higher volume than events or alerts.
    4. A metric is a numeric value in a named time series, such as the latency for an operation.
    To get started using ion.cast, you can

    Wednesday, June 6, 2018

    Datomic Ions: Your App on Datomic Cloud

    Datomic Ions let you develop applications for the cloud by deploying your code to a running Datomic cluster. You can focus on your application logic, writing ordinary Clojure functions, and the ion tooling and infrastructure handles the deployment and execution details. You can leverage your code both inside Datomic transactions and queries, and from the world at large via built-in support for AWS Lambda.

    With Datomic Ions you can:
    • Focus on your application
    • Leverage your Datomic Cloud cluster compute resources and data locality
    • Extend Datomic transactions and queries with your own logic
    • Connect to the broader AWS cloud via Lambda events
    • Service web consumers with API Gateway
    • Scale Datomic and your app together
    • Deliver on AWS with high agility

    To learn more about ions, check out the Datomic Cloud Ions documentation.

    For Datomic On-Prem, we have added classpath functions and auto-require support for transaction functions and query expressions.

    Datomic Cloud on the AWS Marketplace