Hi again,
happy to further discuss the matter.
So two issues here from my perspective, first one “believe” and second one “eventually face limits” - neither is an argument but both reflect a feeling without any evidence. So my question would be what is the limitation you expect PHP (as a language or runtime) to hit? And what would be the sustainability problem with the modulith? To be clear I do not argue for it to be the single best solution. An architecture should always be adequate and cater for various requirements. So certain thing have already been carved out, or their level of clean modularization has been improved. To be clear, thanks to DI, when a request hits the server-side only the relevant part of the code-base gets executed, not the whole sever-package code (like most or any other language), if it is about having a server/application state, not tied to a user/request than upcoming things like the FrankenPHP project will bring this concept to PHP as well (like many other languages have) and we are actively keeping tabs on the project and analyse how to bring the project or a similar one with the same concept to Nexctcloud.
With ExApps in mind and even with classic PHP apps, being more plugin-like what is is you are missing or where do you see the issue? In short, yes, any app that is not tightly integrating the the core functionality could well be an ExApp, any app closely integrating should probably be a classic PHP app to safe on latency cost. SQL we do support, S3 as well but only as one type of storage and making it the only one would also be rather bad, again the architecture should cater for the requirements, and being storage agnostic is a requirement.
Arguing for independent services I can’t tell if that implies independent apps will little integration, than yeah Nextcloud is not focused on that, in the sense of it being a platform, not an application builder framework like Spring would be for Java.
So basically this is the actual question to answer. And for me it boils down to what is your goal - what are you trying to achieve?
If you already have a fully operational, standalone app, than I have to thought on that: Either you want to make your life easier in terms of maintenance and you are looking ore for a application framework while potentially keeping your freedom but that implies not looking for a platform and ecosystem. If you’d be looking for tapping into a community and hence pool of potential users and if using you app furthermore adds extra value of makes even more sense to use in a EFSS/Nextcloud scenario mid-term also visually integrating in terms of look and feel, than Nextcloud form the existing platforms (yes, I am obviously very biased) makes sense but comes with the platform price of having a tighter external dependency than not being embedded into an ecosystem/community.
As for the remaining parts you mentioned, hard to comment - as you said: the future is very hard to predict here. I personaly doubt the dashboard-approach. That has been here many times which former names, call it a portal, a best-of-breed approach, it all had a general UX issue in the end of trying to take the shortcut in terms of loosely integrating saving development and maintenance effort at the cost of experience and while it works in the begging (time to market) it fails in the long run given the better product is the better integrated one. So to me is is also a bit of a pendulum of trends, none ever fully going away and none ever fully winning over the other. In the end the question is about the personal goals when making the decision for one or the other and which trade-offs of which approach you can easier live with.
…and yeah, if this is your scenario and implying from my point of view it is not what users generally want but something a certain percentage of an overall user-base would be fine with than all your arguments work. The moment my hypothesis kicks in that given the applications have at least some relation to each other and are not nicely isolated in what they do, but rather close, than this architecture gets you into serious performance issues and deployment monoliths.
So maybe a bit philosophical or political correctness. I believe all architecture patterns have their use case. Nextcloud is proven to be very scalable so at least for now and when talking millions of users on a single (clustered) instance it works very well. With ADA the task has been to change the file layer in a way that is is capable of managing an instance with 1 billion users. So the current architecture is proven to work and delivery at scale, hence can’t be that bad given reality proves it to work. Also when talking with customers and looking at their very large systems, it becomes clear that scaling works on a macro level and the micro-level as a conceptual improvement actually provides no real benefit in terms of operational cost.
The long term direction, is hard to tell. Given the evolutionary approach and the value of freedom at Nextcloud I see both current concepts to simply co-exist and people also had the idea of a strip-down 3rd approach where Nextcloud would just turn into a lean runtime layer for apps without the integration making it a pure app framework and execution environment.
Happy to discuss the matter and also appreciate the constructive and open discussion around it 