Improving performance and scaling apps

Prev Next

This guide will help you understand:

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