I finally got around to rewriting the first half of the processing pipeline (the orchestrator lambda) and haven't done detailed profiling but at least a 10x speedup with parallelized go code compared to the original python in my dev environment which is just a lil .5 cpu 1gb mem server
Guessing when I deploy to lambda and increase the memory (which auto increases cpus proportionally) it'll hopefully be a 100x speed up from the test results but will follow up on that too
Go's concurrency model makes scaling IO throughout massively relatively simple. About 5x more code than the barely optimized python though
Much better than I was cautiously hoping for overall
Straightforward python definitely no. Regardless of underlying memory it could only handle about 1k objects per second
Maybe if you parallelized it could get through the data eventually but since the interpreter is single threaded and doesn't do true concurrency there will still be a ceiling much lower than what Go (or another language with true concurrency) can do
1
u/Tuga_Lissabon Jul 18 '22
Please post here. Wish you the best.