Do you need to periodically poll the db or do you read once?
Are there any limits for example on Activities invoking other workflows
Depending on the rate you are creating new executions you should set appropriate namespace rps limits, see here.
Same for your db, meaning you might need to protect overloading your db via dynamic config:
frontend.persistenceMaxQPS
- frontend persistence max qps, default 2000
history.persistenceMaxQPS
- history persistence max qps, default 9000
matching.persistenceMaxQPS
- matching persistence max qps, default 3000