Replies: 1 comment 2 replies
-
Thinking that we could expand SST/Live Lambda Development for Clojure, by making support that does the invoke in a locally running application, where you have a REPL open. This could bring the live dev experience into Clojure land. I haven't yet tried out SST so don't know the effort required, but would probably be worth to survey this option. One idea that came into my mind is that what if the SST proxy lambda would have nbb included. Then we could use this to send code for evaluation via the SST websocket proxy. Based on the DynamoDB table that contains Lambda processes that have been registered, we could even pick the one with most lifetime left for evalling. |
Beta Was this translation helpful? Give feedback.
-
How we can make Live Lambda Development environment in Clojure way?
I did some hammock time and was puzzled by the idea for some months. After seeing today's tweet from @borkdude about AWS Lambda "eval" I was inspired to write my thoughts about what perfect live-development environment for Clojure would mean for me.
Goals
Non Goals
How would the user interact with the system?
A user spans a new nREPL connection e.g.
bb --nrepl-server
.The user connects to a running repl.
If this is the first time user is trying to use a system, it's first required to deploy it to AWS (or if the infrastructure changes)
The deployed system in
/unified-live-development/welcome
presents all the necessary information for the user to connect to the system:User connects to socket, that way the events from Lambda flows to local environment.
On the local environment on each remote lambda invocation the mounted handler is invoked with the payload.
User can remount the handlers, or manually get one of the remote events from the history.
Technical details
Our system consist of:
.holy-lambda
and deploy.Trade-offs
A bastion in the same VPC would have to be created, then:
aws ssm start-session --target <BASTION_INSTANCE_ID>
Beta Was this translation helpful? Give feedback.
All reactions