Forum Academy Marketplace Showcase Pricing Features

1,000 Orders Quickly | Checks & Balances

Hi! I’m new here and grateful to be here.

I’m building a drop shipping e-commerce store where my customers will be purchasing at a high volume and quickly.

What checks and balances should I have in the backend so everything runs smoothly?

I will have suppliers signed up so they can see their orders in their own dashboard too as well as their inventory.

Very respectfully,
Cody

Hey Cody,
Welcome to the community! It sounds like Bubble’s Logs tab is going to be your best friend. You will be able to see the load that is put on your system at any given time as well as how many API workflow’s are happening. The more you pay bubble (higher plan) the more load you can have at a single time. So I wouldn’t except there to be any “checks and balances” you can do in the backend from a testing perspective, but you will want to monitor these logs and make changes based on what you find.

Best,
Alex

1 Like

Hey @homegrown :wave:

Welcome to the Bubble Community! :raised_hands:

I think, if it were me, I would create a queue with the information and then do any processing one at a time so I don’t hit capacity. I wouldn’t try to do a bunch of processing of the data as soon as it comes in. Especially if there is a large amount of data.

Side note, I hear that you can process data faster through the Bubble API but you have to set it up using the API connector which takes some time.

Does that make sense?

1 Like

This would only work if we’re talking about backend flows where customers don’t need a response quickly. If you’r running an ecommece site, the expectation is immediate feedback (at least for order confirmation).

I personally wouldn’t worry about an API connector until you’r actually finding load that you’re app can’t handle.

1 Like

Curious if you have found a dependable and method using a queue?

Last I knew Bubble can’t really handle this and the team had at one time promised they would address it and we are still waiting :-1:

1 Like

Hey @gf_wolfer :wave:

We have found that using a queue is very dependable because we don’t remove the record in the queue until it has been acted upon. Then we even get a notification if the queue is large if there was a spike or a bug. Then we fix the bug and don’t lose any info because it’s still queued up in our list. We also have made the amount of seconds to be dynamic so when the queue is larger we can just change the number to a lower amount and it will go through the list faster.

Another check we have is that when the workflow runs, if the queue isn’t in process, it will kick of the process again.

It works really well. We used to have capacity issues once in a while when a lot of things would happen at once. Now there are no capacity issues because we manage the speed it goes through the list.

Does that make sense? :blush:

3 Likes

Would be interested in a deep dive into your process of how it works. Would this work for a somewhat time sensitive like that the original poster mentioned?

In my specific case it is an event registration situation where say 200 people try to buy 50 tickets at once. So we need the queue to be accurate and to also provide feedback to the user on the success or failure of their attempted transaction in a reasonable amount of time (minutes)

1 Like

It is an e-commerce site. Yea I was just thinking if the system could handle high volumes of orders quickly.

It seems it can!

I appreciate your insight and help!

This is super interesting ! For order confirmation and processing though I don’t think it makes sense?

Or does it and my lack of knowledge is confusing me.

I love the idea of being altered about spikes etc. Just dont really follow entirely.

What type of processes do you use with this?

Thanks for dropping knowledge, I appreciate it so much.

@gf_wolfer

I do think this would work, its a pretty safe way to do it so it doesn’t miss anything.

Do you do one charge and then process 50 things? So for example, the charge would be right away on the front end, but maybe the processing of the 50 different things could be done on the backend. Or is it just one thing with a number of 50 attached to it?

There are always ways to optimize things. Just need to think outside the box sometimes. There is accomplishment through many advisors!:blush:

1 Like

It just depends on what type of process happens after the charge happens. Is there a long workflow that needs to happen after each charge?

The charge can be instant but the rest of the workflow might not have to be as quick. By separating the parts that can be delayed a little bit, it allows you to make sure that the important workflows are taking priority.

I have seen this process when a lot of web hooks were being processed in a short amount of time. These have heavy workflows attached and would crash the system if a lot of web hooks came in too quickly. To manage this, we made a queue that processed the items one at a time when we wanted it to happen. If there were large spikes, no information was lost and we never hit capacity any more.

Managing the workflows proved to be important.

Does that make sense?

1 Like

Yea that’s complete sense thank you for explaining in more detail!

This is a dumb new guy question but do you have a system / method of separating your workflows to create the priority your talking about.

Any courses / stuff to watch to further learn and understand this stuff or is it better to just dive into it, build and start testing stuff

This sounds cool, would love to hear which solution you find and how it works…

To find the priority I look to see what is important that needs to happen right away. Like a payment. Then other things that can be processed on the backend can happen afterwards. It varies depending on your project.

Every project is different so I find that diving in and trying it out is a great way to learn. When you get stuck, ask questions here and we will try to help you out when we have a moment.

Hope that helps! :blush:

@j805 www.NoCodeMinute.com

For All Your No-Code Education Needs:

2 Likes

Similar to an event ticketing system like Eventbrite.

There is a Ticket Type with a Remaining Quantity value of 50

200 people land on a page at once, and add it to their cart, and then when they go to the next part it should bring down the quantity unless after a set time they do not complete the order it will go back up in quantity - I don’t currently use that logic as it has broken in the past.

Instead currently in the next step they create a Registration Form with their info which I currently use to space out the registrations but this leads to some people filling in a lot of info before being told the event has sold out.

I would rather a true event system feel, where the workflows are dependable enough to ensure that 50 and only 50 people would get in and quantity is dealt with correctly. Trying to ‘reserve tickets’ in the past led to terrible data inconsistencies (someone reducing the Quantity at the same time the Quantity is supposed to be increased, etc)

1 Like

Excellent! Thank you!

@gf_wolfer Hmm :thinking:

So instead of subtracting from the value, which could be inconsistent, have you tried creating a thing each time. Then you can do a count of all the items and if that count is still less than the ticket amount, then you can create that new thing?

Then it’s already created before they submit the form. You can have a count down for how long the ticket is reserved until it’s gets sent back to the ticket availability. Let’s say they have 10 minutes, then that item gets deleted on a backend workflow based on the timer, if it isn’t completed by that time. If they do complete it, then you can cancel the deletion workflow.

Have you tried that yet?

1 Like

Xano supports transactions for this type of activity. Just sayin :eyes:

1 Like

I have not but I might try building out that scenario with some test pages to see. I still think there could be some delays around a race condition of creating the thing, but you’re right that it’s probably more consistent than editing a count

@gf_wolfer

I have done things in the past with checking the count of an item before creating something and it normally works pretty well. It’s worth a shot. :man_shrugging:t2:

Just put the condition on the ‘create a new thing’ step to make sure.

1 Like