Hello Bright Amalraj,
It is a very good question, but i am afraid there is not a universal good answer to it, in my opinion it highly depends on the context(the proces, the goal, the environment, the value) what is the best solution.
Of course, ideal is to have the batch sizes as small as possible to mitigate the effect of potential problems, on the other hand you would like to overcome too much overhead that is associated with each transaction.
So once again there is not one good solution, but my advice is look to your use case, think about possible (extreme) scenarios, set acceptance criteria and test it over and over again.
Hope this helps,
Good luck!