@adamtait @steveb8n @cjsauer @jake.shelby Pinging you all since you seemed interested in this. I created a post on the Datomic forum so this doesn't get lost in Slack. Post is here: https://forum.datomic.com/t/dynamic-ion-config-edn-app-name/16074👍
May be misunderstanding the use case, but all our environments have the same app name, only the aws profile (in gitlab deployment params) determine where it's being deployed to.
Datomic seems the ideal system to reference entities at a particular point in time (ie the order was sent to the customer address as it was on Saturday 29th). I haven't seen a way of doing this in a way that feels natural - I could use the order time to get a database as of that point in time and read the address of course. Anyone discovered a better way?
I think you can customize profile when calling the deploy functions, right?
@p14n I thought Datomic had a specific API for viewing the database as of a given timestamp?
It does, but not a way I know of to store that fact 'this reference is of time T'
@p14n I think what you're asking for is what bitemporal databases (e.g. https://github.com/juxt/crux) are designed to model explicitly: differentiating between when information is recorded vs when that information is considered valid. The Datomic API only really concerns itself with the former (when information is actually recorded). If you want the latter, you can either model it using the same API (but then, e.g. you can't go back and easily change when something should be considered valid, since you can't change the time of recording); or you model it as additional valid-time attributes and make sure all your time sensitive queries take them into account. Valentin had a good blog post about this: https://vvvvalvalval.github.io/posts/2017-07-08-Datomic-this-is-not-the-history-youre-looking-for.html
what are we defining as valid? when i see some information is a straight forward idea, i don't have a strong understanding of what valid means in this context?
So as-of doesn't give all attached facts past the given time? It gives just what was true as of that time.
Ah, yes, I think you're right
My use case is for dev/staging/prod deploys of the app. By “AWS profile”, I’m assuming that means you have an AWS account per deploy? That seems overkill for my simple use case, but perhaps there are benefits to keeping envs isolated in that way.
I haven’t tried it, but I suspect it should be possible. I believe both topologies share the same storage layer.
@p14n Isn't this just an attribute on an entity?
I don't understand the problem you're trying to solve here but am interested in hearing more.