architecture

jlmr 2020-02-28T07:35:14.014100Z

@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.

1👍
adamfeldman 2020-02-28T16:54:55.016800Z

My pleasure! What sort of long-running processes? Are you referring to a stateful system, like Datomic?

jlmr 2020-02-28T19:54:40.020400Z

More like a worker that periodically does some proocessing

jlmr 2020-02-28T19:55:02.021200Z

For storage we will probably just use s3 and a managed db

adamfeldman 2020-02-28T19:57:29.021500Z

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

orestis 2020-02-28T10:41:32.015500Z

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.

orestis 2020-02-28T10:42:36.016600Z

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.

adamfeldman 2020-02-28T16:54:55.016800Z

My pleasure! What sort of long-running processes? Are you referring to a stateful system, like Datomic?

jlmr 2020-02-28T19:27:58.018700Z

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

lukasz 2020-02-28T19:46:48.019400Z

I'm looking into Fargate right now and you can definitely run long-running processes without a http server

jlmr 2020-02-28T19:54:40.020400Z

More like a worker that periodically does some proocessing

jlmr 2020-02-28T19:55:02.021200Z

For storage we will probably just use s3 and a managed db

adamfeldman 2020-02-28T19:57:29.021500Z

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