This is not so simple, and you can not expect to get any reasonable suggestion by just giving some figures, unfortunately this does not work like this.
Do not get me wrong, but numbers you have shared means nothing. Because what does it exactly mean 100k per day? How it will distribute during the day? Can you expect some load picks. How this load will be distributed across pages? What percent of your pages you expecting to be fully cached etc.
This is really complex topic - which requires lots of data, or at least set of assumptions, and time to do it correct. In other words this is typical work for architect 🙂
I think standard AEM setup which is one author and two publish instance is always a good starting point. Keeping in mind that this could not be enough, and in the future you will need to revisit your setup.
What I would suggest is to have a proper performance/load test plan with real use cases, and run those tests as a regular manner - this will allow you to monitor, if implementation of your project is going fine in terms of performance that you will get on specific setup.
From my point of view, increasing number of publish instance should be the last step, assuming all other activities like code optimizations, additional cache layers etc did not bring expected results.
I can recommend to think carefully what should be done on AEM and what should be handled outside. One of the main issue I spot on many AEM projects is to try implement everything on AEM. This is basic architectural mistake. Middle layer or other solution could bring brilliant results even with very basic AEM setup - but again - how exactly your system architecture should looks like also regarding AEM part is a combination of multiple factors, requires some detailed analysis, and sometimes compromise.