Not sure how locking to some common data structures is implemented in nix(-portable). This may lead to race conditions when e.g. accessing the sqlite database. If most of the actions are read-only, it might suffice to add a (temporary) overlayfs in between to catch the occasional writes.
There is also work-in-progress to support multiple store locations in Nix, which should help you share a common base store in a clean way.
sqlite has process locks, so race conditions won’t be an issue. but you would need to make it writable by multiple persons somehow. I don’t know if posix acl could solve that.