Having a few Datomic Cloud Solo stacks, here’s a sample of what we found updating our code to the new Datomic Cloud (production) stack.
TL;DR we’re really happy with the simplification, unification, flexibility and price of this new topology.
We started by creating a new stack (not updating one of our existing stacks first) to test out our app in a pristine environment.
One surprise we found that was not sufficiently covered in the release notes is the disappearance of the lambda proxy support in favor of Http Direct. We’re very happy with the change and how easy it’s become to use this mode, but it caught us by surprise. With that said, adjusting required simple changes:
So in essence, we’re now able to entirely retire our
req->ring utility. This is great news since every clojure shop out there using Ions with lambda proxies had to pump up their own code to massage requests to make them look more ring-like for their HTTP handlers.
Apart from this, some notes:
- The new automation for API Gateway works like a charm for our purposes. It’s great to not have to bother setting this up anymore.
- The new endpoint URLs backed by API Gateway work well, with the exception that if you map them to a custom domain, e.g.
my-db.example.com, you won’t be able to use this in your config maps. This is probably due to the client API’s parsing the endpoint URL to extract e.g. the ID of the system.
- The new DB config maps now accept a
creds-profilefor the AWS configured profile. We appreciate the ease here as each one of our stacks live in a distinct AWS account.
Now that this new stack works and our code is ready to use it, I’m prepping to upgrade our existing stacks. I expect that I’ll only need to delete our API Gateway custom configs before upgrading, to ensure that no conflicts appear during the upgrade.
One final note is that we’re big fans of using remote REPLs. We started with replion. This method worked fine with a Solo topology but will now require adjustments. This is obviously unsupported by Cognitect. I might report back here about this later.