Just want to confirm the below is all correct: With datomic ions, there can be only one "application" per compute stack, named by "ApplicationName" parameter in the compute stack and :app-name in ion-config.edn. And that corresponds to one code repo as well. It seems to default to the system name if unset when creating the compute group stack. You can have multiple compute groups use the same app-name, then they will all use the same code repo. But you can't have more than one code repo per compute group.
This concept is one that, after years of using Ions, I'm still not comfortable describing. The relationship between apps, stacks, system names and deployment groups is kinda confusing. I had @jaret explain it to me once ... I think he would be your best bet for clarity on this.
Thanks, it honestly makes me feel better that it's not just me haha. When you use ions you just have one git repo to manage all your ions? I only really need one compute stack overall for my datomic cloud usage, but I have a pretty specific niche project I want to do with ions. My current assumptions imply to me I should just have one code repo that I will plan to put all my eventual ions in, and then just use namespaces to separate stuff. But if it's possible/natural to have many separate clojure projects per compute stack, maybe that'd be a nicer way to organize it? Really i just want to do whatever is the most idiomatic.
I have gone very far with one repo deployed to the primary compute group. Only recently did I feel the need to add a Query Group -but even now I keep all the code in one repo and just tweak the classpath (so managing the discovery of ion-config.edn) during deployments. One Datomic system, one repo, two apps (that are really the exact same code, modulo ion-config.edn), two databases (one is pretty much dead, but worth mentioning in the context of this discussion), two deployment groups. The PCG is set to two instances of t3.xarge and the QG autoscales from one up to a max (so far) of three t3.mediums.
cool thanks! that's helpful
so if you're using ions, you can think of the compute stack as pointing to one ions app as well as managing compute it runs on?