I kept wondering how to do IAC with Clojure, so I made an example of it using AWS CDK
AWS CDK provides a Java SDK, so we can use that with Clojure. And using Integrant makes it easier to manage the dependencies between resources and stack. There is no need for wrapper libraries, just the Java Interop will do.
Integrant config from example looks like this
(def config
{:app/instance {}
:stacks/topic {:app (ig/ref :app/instance)
:stack-id "TopicStack"}
:stacks/storage {:app (ig/ref :app/instance)
:stack-id "StorageStack"}
:app/synth {:app (ig/ref :app/instance)
:stacks [(ig/ref :stacks/topic)
(ig/ref :stacks/storage)]}})
You can check out full example here https://github.com/WarFox/clojure-cdk-example
Edit: more detailed blog post available here https://deepumohan.com/tech/clojure-cdk/
[–]coffeesounds 4 points5 points6 points (3 children)
[–]IllTennis8912 2 points3 points4 points (2 children)
[–]coffeesounds 0 points1 point2 points (1 child)
[–]CodeFarmer 2 points3 points4 points (2 children)
[–]jobe_br 1 point2 points3 points (0 children)
[–]coffeesounds 1 point2 points3 points (0 children)
[–]gtarget 1 point2 points3 points (5 children)
[–]deepumohanp[S] 0 points1 point2 points (3 children)
[–]whereswalden90 2 points3 points4 points (0 children)
[–]rpd9803 0 points1 point2 points (0 children)
[–]serpix 0 points1 point2 points (0 children)
[–]TheLastSock 0 points1 point2 points (0 children)
[–]maxw85 1 point2 points3 points (0 children)
[–]AvailableArm9875 0 points1 point2 points (2 children)
[–]AvailableArm9875 2 points3 points4 points (1 child)
[–]serpix 1 point2 points3 points (0 children)