Let us know if you're using Parse in production!

I think it’s encouraging for people who are new to the Parse Platform to hear from those who are already using Parse Server and the client SDKs in a production environment.

Where possible it would be interesting to hear what sort of traffic people get e.g. requests per second number of users etc.

So let us know and please do share your projects if you want to! :smile:

1 Like

Hi,

We’ve just started using Parse Server in production, for now we’ve clustered only the DB and Redis, but we’re planning to cluster Parse Server too. I’ll keep you posted on my experience in the future.

Our project is a live trivia, “à la HQ Trivia”, for now only web based. We mix Parse Server with Firebase for auth and messaging.

If I may, I found the docs somewhat stale on Live Query and it took me a long time to get the setup right. Maybe it’s a potential area of improvement!

1 Like

Thanks for sharing Andrea!

If you find issues or areas for improvement in the docs please don’t hesitate to open an issue to bring it to our attention and if possible a PR to rectify!

1 Like

Hi,

I’m using Parse in a large french food delivery/own kitchen company (front, BO and picking). Thousands of deliveries every day. The top traffic volume was 1500 hits/s (TV ads).
The project was so successful that the client decided to use it for his kitchen admin (production planning, ingredients supply).

The architecture is:

  • front in React (CRA) using redux-thunk. I keep the Parse objects in the store, which you’re not supposed to do, but makes life easier
  • Back Office : also React, with material-ui
  • Parse on express. All auth using Parse (including Apple)
  • all images/videos on Cloudinary
  • hosting : Google App Engine flex, MongoDB Atlas and Pub/Sub for queuing

In my next projects, I plan to use GraphQL.
And all I miss right now is the MongoDB collations support, which is ok because I can use MongoDB Collections directly. The Config object is a goldmine.

2 Likes

Interesting. Do you have any Request/Online User ratio? Like 1000 online users usually make 80 request per second? Or similar data? @oallouch

Sorry, I don’t.
It’s quite low but I don’t see the problem, were it otherwise.

Interesting @oallouch! Are you scaling Parse Server horizontally? Can you share the details please? Merci!

Yes, I have several App Engine instances with my Parse-on-express server. It can go from 3 instances to 20. I use the database options to ensure each server has its share of MongoDB connections, but not more.
The batches are started using App Engine Cron calls, which makes a single instance run each of them. Because of this, I had to buff each instance a bit. RAM isn’t that expensive and change performance a lot.
In the future, I plan on adding Google Cloud Tasks, which looks really simple, to distribute the batch load between instances with great control.

To be honest, I have split the instances serving the front site and the instances serving the back office/batch tasks.
Also note that each express server also serves the React static files.

1 Like

Thank you for sharing. I’m currently planning hosting on DigitalOcean for 100k concurrent users with Live Queries and it really helped my calculations. If anybody else can share their experience with memory/CPU footprint per each WebSocket connection it would be much appreciated.

1 Like

Can you elaborate on or reference the guidelines around “not using Parse objects in the store?” We were trending this direction without awareness that there was a reason not to do so because it does make life easy. Would like to ensure we at least have our eyes open to potential issues…

It’s just that you’re supposed to only store immutable data. That way, when something gets updated, it’s a new instance and === returns false. If you keep a Parse Object in the store and modify it, you can set it again in the store, then the subscribers get notified, but when they do a ===, they get true because it’s the same instance. That’s why I keep an integer “version” next to it in the store and I increment this integer to mark the object as modified. Maybe there’s a cleverer solution, but this one works for me.
No big deal, having Parse Object in the store is so practical.