I would create a single app for payments in the “umbrella” project structure, and then one app for the web interface. I wouldn’t separate the payment into several apps, since I don’t see any reason to …
I only separate an app if one of the following are “true”:
- the app needs to be deployed in several separate releases, for example, “metrics” app which exposes prometheus metrics might be deployed both with a “database” app, and with a “web” app
- the app is being depended on by several other apps, for example a “repo” (as in ecto repo) app which is used to connect to the same database from a “crawler” and from a “web” apps (which is quite similar to the previous point now that I think about it)
- the app is being worked on independently by someone else
Separating code into several apps for any other reason I consider a bit superfluous … Modules can do just as good but with less ceremony.


















