A very fair question. I would say the answer depends entirely on your circumstances (because when doesn't it?).
If you're building an app that does a few very interrelated things, say: an app where a user can request a mortgage and manage his/her outstanding mortgages, and where back-end users can take these mortgages through the request-workflow.
That's one app. I can see no reason whatsoever to split it up.
However, I've also worked on an app in the past that'd grown to encompass around 40 modules and did so many different things it became hard to keep track of it all. An app like that becomes hard to maintain. If you want to do a proper regression test before a new release (as you should), that becomes a *lot* of work, even with partial automated testing. In addition, if a new developer or ops-engineer would join the team, it'd take forever to get him/her up to speed. Even the core team had a hard time overseeing the whole thing.
It's an extreme example, of course, but somewhere between a simple, straightforward app and a monster like that, lies a cut-off point where you should really consider splitting up.
It may also depend on your available (human) resources. If you're building an application that is going to provide access to a number of very different products or services and you have the resources to form a specialized team for each of these, it might be quite powerful to create separate apps, tied together through an orchestration app and making use of shared central resources (SSO, masterdata, etc).
You can then develop, release and maintain in parallel. In addition, the separate apps are more compact and easier to oversee. Also bugs in one application don't impact the greater system.
Nevertheless, so far I've only occassionally run into a situation where I would make a solid case for going multi-app, so perhaps I'm also overlooking additional advantages.
(Apologies if I repeated points for the workshop, I didn't attend)
Hi Gerard,
We are in the process of evaluating Mendix, and we had the exact same thoughts. We heard the same arguments why we should consider splitting up the application into smaller separate applications.
I totaly agree with your arguments against this, and just use one big application. Indeed if you structure your application good, and use a good separation into modules, I think it can be very good to maintain. And since all oure modules have links to other modules, having them all in one application makes it a lot easier to maintain in stead of creating and maintaining all the cross app connectors.
And since all of oure modules are connected to other modules, the continuity issue will always be there. Even if they are in separate apps. If you update one app, it has some down time, but during this downtime all the connections are down to. So the other apps will suffer also. In fact, since part of them will be up and some parts which use the connections are down, it only makes it less clear to the end user.
The only reason I can come up with right now is security. If you physically split up the apps, it won't be possible for users of one app to reach unwanted pages or data in a other app. But if you have your security rules in order, this should not be a problem when building everything in one app also.
I'm really curious if there are some other good arguments for using separate apps over one big app.
Another reason I did not see here yet is best of breed. If you keep your apps small and let them handle core functions only it becomes easier to replace them when a better app come along. This allows you to use the best app for the job. Be it developed in mendix or one right of the shelves.
Another point not yet taken in considderation in this discussion is "costs". All pro's and con's discussed are from a technical point of view. Which is also the first thing to look at ofcourse, but if splitting up in multiple apps is technically a better way to go, then costs come into play also.
Maybe this isn't a issue for some bigger users, but for a smaller company this might be a big issue. Splitting one big application into several smaller apps greatly increases yearly mendix subscriptions.