@adam622 thanks for the tips! All these tips have been very helpful! Do you know about PaaS-services on AWS (like Beanstalk) that you can use for long-running processes? As far as I know Beanstalk is specifically for web servers, but I could be wrong.
My pleasure! What sort of long-running processes? Are you referring to a stateful system, like Datomic?
More like a worker that periodically does some proocessing
For storage we will probably just use s3 and a managed db
Depending on how periodic and what the load is, you may want to explore using Lambda for the worker. Fargate would probably also be straightforward to use
Beanstalk has a "web" mode and a "worker" mode. Essentially worker mode isn't exposed to the internet, but is meant to process events from an SQS queue.
They will POST events from a selected SQS queue to a web endpoint (so you don't have to deal with the SQS queue yourself). I'm not sure what happens if you get no events at all from the queue, but I think the servers just stays up and does what you want it to do.
Ok, good to know. I will have to compare this option to using Fargate to figure out what would be the best option for our use case
I'm looking into Fargate right now and you can definitely run long-running processes without a http server