Joplin stores files as separate markdown files, and the database is just an index for search and metadata.
I'm not a huge fan of Joplin's UX, but not having to pay for sync (and being able to choose the backend for sync) is important enough to me that it is a differentiator greater than the overall UX. I can point all of my Joplin installs to the same S3 bucket and boom done.
I'm hearing that with Obsidian you can use OneDrive/iCloud/Dropbox/etc for sync but that is all based on the sync provider. To me that brings ambiguity about how concurrency and conflict resolution are dealt with, since the app kinda capitulates that to the external storage engine right?