Skip to content

Commit 5c613a4

Browse files
authored
Merge pull request #1835 from appwrite/pla-2615
feat: added database operations pricing announcement and blog
2 parents 813c3b5 + ea2494f commit 5c613a4

File tree

6 files changed

+161
-4
lines changed

6 files changed

+161
-4
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
layout: post
3+
title: Announcing Database Reads and Writes pricing
4+
description: To ensure Appwrite Cloud's sustainability, we are introducing pricing for database read and write operations, effective April 10th, 2025.
5+
date: 2025-03-13
6+
cover: /images/blog/announcing-database-reads-and-writes-pricing/cover.png
7+
timeToRead: 6
8+
author: eldad-fux
9+
category: announcement
10+
featured: true
11+
callToAction: true
12+
---
13+
14+
Database operations are the backbone of modern applications, enabling you to store, retrieve, and manipulate data efficiently. With Appwrite Databases, you can perform powerful queries, create complex data structures, and build real-time applications that respond instantly to changes. Appwrite’s database capabilities have been designed to be both powerful and intuitive, making it easier for you to focus on building great applications rather than managing infrastructure.
15+
16+
When we launched Appwrite Cloud in beta, we provided database operations without additional charges, even though these operations consume significant computational resources. Our database service requires robust infrastructure to handle concurrent operations, maintain data consistency, and deliver fast response times across all types of queries.
17+
18+
Over the past year, we've made substantial improvements to the database infrastructure, optimizing query performance, enhancing indexing capabilities, improving high availability and redundancy, adding backups as a service, and implementing advanced caching strategies. These improvements have ensured support for applications processing millions of database operations monthly while maintaining the reliability and simplicity that Appwrite is known for. Appwrite is committed to creating a fair and sustainable platform, in which your usage reflects your bill. Those using compute with 100m operations, should be charged differently than those with 10k operations.
19+
20+
# Pricing update
21+
22+
As Appwrite continues to scale, we need to ensure our platform remains sustainable while delivering exceptional service. The new pricing for database operations will be effective **starting April 10th, 2025**.
23+
24+
## What will change
25+
26+
We will begin charging for database read and write operations beyond the included quotas in each plan. All plans will continue to include a generous allocation of operations at no additional charge:
27+
28+
- **Free Plan**: 500,000 read operations and 250,000 write operations per month.
29+
- **Pro and Scale Plans**: 1,750,000 read operations and 750,000 write operations per month, with additional operations available at $0.060 per 100,000 reads and $0.10 per 100,000 writes.
30+
- **Enterprise Plan**: Unlimited read and write operations.
31+
32+
This change will help support the infrastructure required to maintain high-performance database services and enable us to continue enhancing the platform.
33+
34+
Please refer to our [pricing page](/pricing) for detailed information, including operation costs and included quotas for different plans.
35+
36+
# How it works
37+
38+
Database operations in Appwrite are categorized into two types:
39+
40+
## Read operations
41+
42+
Any action that retrieves data from your database, including:
43+
- Fetching documents with `getDocument` or `listDocuments`.
44+
45+
## Write operations
46+
47+
Any action that modifies data in your database, including:
48+
- Creating documents with `createDocument`.
49+
- Updating documents with `updateDocument`.
50+
- Deleting documents with `deleteDocument`.
51+
52+
**Important to note**: Operations are counted based on the number of documents affected, not API calls. For example, if you fetch a collection of 50 documents with a single API call, this counts as 50 read operations, not as a single operation. If your query returned no documents, **it won't be counted**.
53+
54+
# Your usage
55+
56+
To help prepare for these changes, teams can review their current database operation usage through their organization's usage page or the usage section of specific databases. This will help you understand your usage patterns and plan accordingly.
57+
58+
# Optimizing your database operations
59+
60+
To help you manage your database operations efficiently, here are some best practices:
61+
62+
1. **Use efficient queries**: Filter data on the server side rather than retrieving large datasets and filtering client-side.
63+
2. **Implement pagination**: Use the `limit` and `offset` parameters to retrieve only the data you need.
64+
3. **Consider caching**: Cache frequently accessed data to reduce repeated read operations.
65+
4. **Monitor usage**: Keep track of your database operations through the Appwrite Console.
66+
67+
# We're here to help
68+
69+
If you have questions about this pricing change or need assistance optimizing your database operations, please don't hesitate to reach out to us at [[email protected]](mailto:[email protected]).
70+
71+
Your success is our priority, and we're committed to helping you make the most of Appwrite's database capabilities while keeping costs predictable and manageable.

src/routes/docs/advanced/platform/+layout.svelte

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@
111111
new: isNewUntil('15 Apr 2025'),
112112
label: 'Image Transformations',
113113
href: '/docs/advanced/platform/image-transformations'
114+
},
115+
{
116+
new: isNewUntil('30 Apr 2025'),
117+
label: 'Database Reads and Writes',
118+
href: '/docs/advanced/platform/database-reads-and-writes'
114119
}
115120
]
116121
},

src/routes/docs/advanced/platform/+page.markdoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,10 @@ Learn about Appwrite's different compute add-ons.
110110
{% cards_item href="/docs/advanced/platform/phone-otp" title="Phone OTP" %}
111111
Learn how Appwrite handles SMS-based OTP authentication.
112112
{% /cards_item %}
113+
{% cards_item href="/docs/advanced/platform/image-transformations" title="Image Transformations" %}
114+
Learn how to transform images dynamically with Appwrite.
115+
{% /cards_item %}
116+
{% cards_item href="/docs/advanced/platform/database-reads-and-writes" title="Database Reads and Writes" %}
117+
Learn how Appwrite handles database reads and writes.
118+
{% /cards_item %}
113119
{% /cards %}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
layout: article
3+
title: Database Reads and Writes
4+
description: Learn how Appwrite handles database reads and writes and their associated costs.
5+
---
6+
{% info title="Note" %}
7+
Updated pricing will take effect on April 10th, 2025. Check out this [blog post](/blog/post/announcing-database-reads-and-writes-pricing) for more information.
8+
{% /info %}
9+
10+
Appwrite provides powerful database capabilities through its [Database API](/docs/products/databases), allowing you to perform read and write operations across your application data. Understanding how these operations are counted and billed is essential for planning your application's scalability.
11+
12+
## Database Operations
13+
14+
Database operations in Appwrite are categorized into two types:
15+
16+
**Read Operations**: Any action that retrieves data from your database, including:
17+
- Fetching documents with `getDocument` or `listDocuments`.
18+
19+
**Write Operations**: Any action that modifies data in your database, including:
20+
- Creating documents with `createDocument`.
21+
- Updating documents with `updateDocument`.
22+
- Deleting documents with `deleteDocument`.
23+
24+
How it works:
25+
1. Perform database operations through the Appwrite SDK or API.
26+
2. Appwrite automatically tracks and logs these operations.
27+
3. Operations are counted based on the number of documents affected, not API calls.
28+
4. Quotas are refreshed monthly based on your subscription plan.
29+
30+
For example, if you fetch a collection of 50 documents with a single API call, this counts as 50 read operations, not as a single operation. If your query returned no documents, it **won't be counted**.
31+
32+
## Pricing
33+
34+
### Free Plan
35+
- **Included**: 500,000 read operations and 250,000 write operations per month.
36+
- **Overage**: Not available (operations are throttled when limits are reached).
37+
38+
### Pro and Scale Plans
39+
- **Included**: 1,750,000 read operations and 750,000 write operations per month.
40+
- **Overage**: $0.060 per 100,000 additional read operations and $0.10 per 100,000 additional write operations.
41+
42+
### Enterprise Plan
43+
- **Included**: Unlimited read and write operations.
44+
- **Overage**: Not applicable.
45+
46+
For detailed information about the different pricing options and features, please visit the [pricing page](/pricing).
47+
48+
## Best Practices
49+
50+
To optimize your database operations and control costs:
51+
1. **Use efficient queries**: Filter data on the server side rather than retrieving large datasets and filtering client-side.
52+
2. **Implement pagination**: Use the `limit` and `offset` parameters to retrieve only the data you need.
53+
3. **Monitor usage**: Keep track of your database operations through the Appwrite Console.
54+
4. **Consider caching**: Cache frequently accessed data to reduce repeated read operations.

src/routes/pricing/compare-plans.svelte

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,31 @@
184184
enterprise: 'Unlimited'
185185
},
186186
{
187-
title: 'Reads & Writes',
188-
free: 'Unlimited',
189-
pro: 'Unlimited',
190-
scale: 'Unlimited',
187+
title: 'Reads',
188+
free: '500K',
189+
pro: '1750K',
190+
scale: '1750K',
191+
enterprise: 'Unlimited'
192+
},
193+
{
194+
title: 'Writes',
195+
free: '250K',
196+
pro: '750K',
197+
scale: '750K',
198+
enterprise: 'Unlimited'
199+
},
200+
{
201+
title: 'Aditional reads',
202+
free: '-',
203+
pro: '$0.060 per 100k reads',
204+
scale: '$0.060 per 100k reads',
205+
enterprise: 'Unlimited'
206+
},
207+
{
208+
title: 'Aditional writes',
209+
free: '-',
210+
pro: '$0.10 per 100k writes',
211+
scale: '$0.10 per 100k writes',
191212
enterprise: 'Unlimited'
192213
},
193214
{
1.36 MB
Loading

0 commit comments

Comments
 (0)