back

by mlhpdx·2y ago·view on hn ↗
I have been doing a lot of work with AWS StepFunctions lately, everything from replacing cron jobs to implementing HTMX backends. I think StepFunctions is an interesting case study (I'm not really familiar with other offerings, other than spending some time with the block-based programming like Scratch and MakeCode).

To build solutions I have to use the Amazon States Language, which is a learning curve and being as charitable as I can a royal pain in the ass. Ultimately I end up with a JSON file that is a "giant, flexible config file" for their runtime.

On the plus side, solutions using it are very nearly zero maintenance. No runtime updates, no package updates, no manual scaling, etc.

Another plus, it's zero cost when not in use. No VMs I have to pay for hourly or monthly.

The downsides (for me) are obvious: It's difficult to learn; It's very restrictive, and solutions often end-up needing some aspect of more flexible services like Lambda or Fargate (containers) when end-up adding cost and maintenance; It's proprietary and there is nothing I can use elsewhere (no other company support ASL as far as I know).

Overall, though, I love it. Why? I despise having to choose between unpatched systems and the drudgery of constant patching. With StepFuctions I don't have to choose.

1 comments
I was so stoked to build stuff this way; I had the same sentiments about the learning curve, but overall it seemed like an amazing tool and pretty fun.

The problem is the people around me thought it was too difficult, and couldn't see long term. So we implemented a low code solution and now everything is in there and it's a mess/nightmare. I hate my work now, and everything we build is tightly coupled to this spaghetti platform that will inevitably decide to raise it's prices on us and we will have no recourse.

Job hunting has been tough too, because very few places have done this, so they ask "what have you been working on?" and I'm basically setting record times for ending interviews if I tell the truth.