How apps get access to storage

I’m just wondering in general what the different ways are for apps to get access to the mass storage on a NAS. I’m running Scale, so obviously I have the option to just install an app and mount some local folder, which I’m guessing acts kind of as local storage. Low overhead, low latency, fast… at least that’s what I’m assuming.

But I’m also thinking of breaking off some tasks away from TrueNAS apps. I’m already virtualizing TrueNAS under Proxmox, so for maintenance and stability purposes it might be better to run separate Proxmox containers instead of Apps inside TrueNAS. But what would be the best way to give them access to my NAS storage? I’m already sharing everything through SMB to Windows clients, so I could use that, but is it good? Are there better ways? Even though the network is virtualized on the same physical machine, it feels like it would slow things down. And I might lose features, for example if an app wants to look for changes to the file system (react immediately when files change), does that work over SMB? What about NFS, coexisting with my existing SMB?

Lots of questions, but I’m mainly just looking for recommendations for how to set everything up. And what the advantages and disadvantages are for the different choices.

You can also install things in a sandbox in truenas, then bind mount the path.

This is much faster/efficient than nfs or SMB.

The problem I see is I would need to play around with TrueNAS shell and stuff that isn’t really officially supported, which I see discouraged pretty much everywhere. Because of that I don’t really trust it working after an upgrade. Also it would defeat the purpose and security (from failure) of having them separate, with TrueNAS only doing storage-related stuff.