Start async children workflow with signal

I have a requirement where I want to start thousands of workflows of type B from a workflow type A. Type B then starts Type C workflow.
Type A ----(1…N)–> Type B —(1…N)—> Type C

I have no requirement where I want all B’s to finish, they should just start from A. The way B starts is through a signal similar to this and should be async Triggering Synchronous and Asynchronous Workflows from a workflow - #28 by maxim. After reading this thread it looked like starting async children workflow with signals is not possible and we may have to add some delay in WorkflowMethod unless something changed after that discussion?

1.) Would it better if we use SQS instead of type B workflow? Writing to SQS is not a deterministic operation though. Also the alternative which is spinning up children workflow from activities also doesnt look deterministic so which option might be a better design?
Type A ----(1…N)–> SQS -----> Type C

2.) From Type A, I may have a list of max 10k items for which I would need to start type B workflow or publish them to SQS. Would I face a problem with limits specifically 50k events limit for workflow history?

From discussion on Slack, no need to have SQS “in the middle”. Check out batching samples
here and here which i think would fit your use case.

Couple of things to consider are rate of signals, number of pending child workflows per single exec and starting too many executions at once.