What is the proper way to find and deal with datomic cloud dependencies? I deployed a pedestal project to AWS and ran into multiple dependency conflicts. Where can I see the current versions running in the cloud and is there any way to use libs requiring newer versions? More Context in the Thread.
So this is what happened:
I tried out datomic cloud for the first time.
Got Jetty related error messages. Had no clue since I did not run into any dependency conflicts before (lucky me I guess).
After long time I got on the right track and found this: https://docs.datomic.com/operation/troubleshooting.html#dependency-conflict
Turns out pedestal uses newer version of jetty than datomic cloud and the conflict can somehow be avoided by excluding the jetty deps from com.datomic/client-cloud
But then I got some jackson-core dependency issues (at least now I knew it was a dependency issue again)
Just like with jetty it seemed that the problem was with pedestal again whos newest version requires a cheshire/cheshire 6.0.0
which in return uses com.fasterxml.jackson.core/jackson-core 2.18.3.
I tried to exclude the jackson dependency from client-cloud again but without success.
I tried to declare 2.18.3 at top level but without success.
AI suggested that anything above 2.15.* breaks so I lowered pedestal all the way to 0.6.1 to get a version of cheshire -> jackson.core below 2.15.
Now it works. But this really seems like a suboptimal solution.
Also along the way I saw first the message from push:
"The :push operation overrode these dependencies to match versions already running in Datomic Cloud. To test locally, add these explicit deps to your deps.edn."}
And then this: https://ask.datomic.com/index.php/702/mismatch-between-expected-dependencies-dependency-conflicts
Which then goes and tell me that the overridden deps returned by push are not correct and can be ignored?
So I am a bit confused right now looking for some clarification and tips.
The project itself was just to play around so I am just happy it works but for future projects I would like to understand things a bit better:
Does the push hard override some deps or not?
Are the deps-clonflicts returned by ion-dev/push correct or not?
Where do I see the current version of the things running in the cloud?
Does this make me unable to use libs that require newer versions e.g. pedestal 8.0 requiring jackson 2.18. ?
If no how could I resolve the dependecy issues properly?
Or even better: How do I avoid running into these conflicts in the first place?
Any insight or RTFM links would be much appreciated.
Is it possible to deploy Ions instances using Graviton type processors in AWS?
It currently isn't but could be, can you say more about your interest in Graviton?
just to reduce some prices at all.
for some small ions that I have
i don't think should be that complex the change for the JVM that supports Arm processors (?)
I'm using datomic on-prem on graviton instances for years now
Got it, cost concerns, not something else. 👍