What database client/server would YOU use to build a new social app to (hopefully) scale to 100K users?
I'm new to this, but it seems to be that the least painful way to write an "offline first" social network app would be to use a auto-synching database like Google "Cloud Firestore" or Realm Object Server because I believe it would greatly reduce the amount of server-side REST or GraphQL programming.
The client-side React Native code would just be driven by local objects that would auto-persist to the cloud.
(BTW, apparently Realm is prohibitively expensive: A salesperson wrote me and reported that Realm Object Server [self-hosted, no less...] costs over $2,000 for 500 users... so getting to 100K would bankrupt me!)
Any feedback? What would YOU use? What is the current state-of-the-art or best practice? Seems every app developer immediately hits this architecture issue and has to pick something!
Requirements (most important to least important)
- reliable
- massive scalability (10K, 100K?, 1M?? simultaneous users)
- lowest possible per user cost (no corporate license)
- client: "offline-first" use without Internet connection
- least amount of database-related code / boilerplate
- client: official React Native support
- technology we already know / are comfortable with
- client: query speed
- least amount of vendor "lock in" (easy to switch)
- open source (vs. black box)
- server: business logic & hooks
- server: daemon / scheduled task support
- transaction support
- ease of schema migration over time
- easily understood / not overly complex
- most current "popular tech" (what are the cool kids using?)
- client: JavaScript only (no native library required)
- self-documenting (generate documentation)