What would be unfair server load?

simulate 10k years of rainfall and report results

That’s going in the list of interesting Anvil projects!

Running in an Anvil Server Module

In terms of what load you can use: the pricing page shows the load limit of Server Modules for each plan. The units are ‘compute units’ - one compute unit is enough to run one sever function continuously. You might use this by running one server function continuously if you have a heavy computation to do, or by running 100s of server functions sporadically. It’s a time-averaged measure, so you might have some things running concurrently.

The tiers are:

Free plan: 0.1
Individual plan: 1
Business plan: Starts at 5, you can buy more
Dedicated plan: You pay for cloud servers at cost price, so you can use all that capacity
Enterprise plan: Are always on a case-by-case basis

We take a ‘soft’ approach to managing these limits: we’ll let you know if you’re going significantly over, and give you plenty of chance to adjust accordingly.

Uplink - run it outside of Anvil and connect it up

If you want to manage your own back-end for heavy computation, you could use the Uplink. This essentially allows you turn any computer running Python into a Server Module - you can mark functions as anvil.server.callable. You can also anvil.server.call from it into your app.

You could do this in a Python script on your workstation, an AWS EC2, a Jupyter Notebook, even the Python REPL. It’s available on all plans including the Free Plan, it’s under ‘Uplink’ in the Gear Menu