This guide will help you understand:
- How Quickbase as a platform approaches performance and scale
- How you can design your apps to perform well and scale well
- What tools Quickbase offers to help you monitor and improve app performance
Quickbase's approach to performance and scale
Performance
When building software, engineers have to make decisions about what to prioritize for the best performance. There are four main components to consider:
- Size
- Complexity
- Speed
- Concurrency
Here is how each of those components relate to Quickbase:
- Size refers to how big the database will get. This depends on app size. The number of records, tables, and fields all contribute to app size.
- Complexity refers to how much "thinking" the app does. Things like loading reports, performing calculations, and computing workflows all add to complexity.
- Speed refers to how fast an app returns an answer that requires computation.
- Concurrency deals with how many requests are made to the system at the same time. This usually is related to the number of users, but also includes requests made by integrations.
Because it is impossible to optimize for all these components, Quickbase prioritizes speed and complexity. This means that Quickbase is able to perform complicated computations quickly.
Scale
Engineers can design software infrastructure to either scale "out" or scale "up."
One analogy is to think about software infrastructure like highway infrastructure. Scaling up would mean increasing the speed limit on the highway and only allowing fast cars to drive on it. Scaling out would mean adding more lanes to the highway.
At Quickbase, we focus on scaling out. As we grow, we add servers in our data centers rather than focusing on making each server faster. When a builder creates a new Quickbase app, our load balancers determine the best place for that app within our hardware and virtual environments.
Why this matters to you
You can follow the same model (scaling out instead of up) when you build your own apps. When you build apps this way, you help them perform better.
Designing your apps to perform well and scale well
Split apps up into logical categories to help them perform well and scale well.
For example:
Quickbase can solve a variety of use cases at an organization. One organization may use Quickbase to keep track of billing, inventory, and human resources.
- Billing is complex. It involves calculations for invoicing and prorating. However, not very many people need access to it.
- Inventory involves a lot of data. The data may not be complex, but it would be big. A system to track inventory might also have high traffic, depending on how frequently and by whom the inventory was updated.
- Human resources might not require complex computations, but it would probably require infrequent interactions from lots of different users.
Quickbase is well suited for all of these use cases. Theoretically, you could build a single app that handled billing, inventory, and human resources. However, that would mean creating an app that has lots of data, lots of complexity, and lots of traffic.
To improve long term performance and set yourself up for continual growth, create three different apps.
Learn more about planning your app's structure.
Tools to help you monitor and improve performance
Quickbase offers tools to all customers that help you analyze the performance of your apps:
- The performance bar can help you troubleshoot app performance. It will help you understand if your network is slow, Quickbase is experiencing a problem, or if there is an issue with your browser.
- The performance analyzer analyzes different parts of your app and can tell you which parts (reports, forms, notifications, etc.) are impacting performance the most.
Customers on Enterprise-level plans have access to additional tools to help with app performance:
- Performance insights will scan your app and then recommend specific actions you can take to improve performance.
- The performance optimizer can automatically apply optimizations to your app.
- Report caching allows you to temporarily store data in reports and improve loading time.
General tips for improving performance
- Create processes to maintain your apps. Remove unused fields, forms, and reports.
- When you need to share data with other apps, consider the options and choose the one best suited for your needs. You can learn more in the Sharing data across apps help article and an article written by our Best Practices group.