mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-10 21:07:46 +00:00
feat: added initial draft for database operations pricing announcement + blog
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
---
|
||||
layout: post
|
||||
title: Announcing database operations pricing
|
||||
description: To ensure Appwrite Cloud's sustainability, we are introducing pricing for database read and write operations.
|
||||
date: 2025-03-15
|
||||
cover: /images/blog/announcing-database-operations-pricing/cover.png
|
||||
timeToRead: 4
|
||||
author: eldad-fux
|
||||
category: product
|
||||
featured: false
|
||||
callToAction: true
|
||||
---
|
||||
|
||||
Database operations are the backbone of modern applications, enabling developers to store, retrieve, and manipulate data efficiently. With Appwrite's database service, you can perform powerful queries, create complex data structures, and build real-time applications that respond instantly to changes. Our database capabilities have been designed to be both powerful and intuitive, making it easier for developers to focus on building great applications rather than managing infrastructure.
|
||||
|
||||
When we launched Appwrite Cloud in beta, we provided generous limits for 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.
|
||||
|
||||
Over the past year, we've made substantial improvements to our database infrastructure, optimizing query performance, enhancing indexing capabilities, and implementing advanced caching strategies. These improvements have allowed us to support applications processing millions of database operations monthly while maintaining the reliability and simplicity that Appwrite is known for.
|
||||
|
||||
We've been thrilled to see how developers have leveraged our database services to build increasingly sophisticated applications. This widespread adoption confirms our commitment to providing a powerful, accessible, and sustainable platform for all developers.
|
||||
|
||||
# Pricing update
|
||||
|
||||
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 15th, 2025**.
|
||||
|
||||
## What will change
|
||||
|
||||
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:
|
||||
|
||||
- **Free Plan**: 1,000,000 read operations and 100,000 write operations per month
|
||||
- **Pro Plan**: 10,000,000 read operations and 1,000,000 write operations per month, with additional operations available at $0.20 per 100,000 reads and $0.50 per 100,000 writes
|
||||
- **Scale Plan**: 50,000,000 read operations and 5,000,000 write operations per month, with additional operations available at $0.15 per 100,000 reads and $0.40 per 100,000 writes
|
||||
|
||||
This change will help support the infrastructure required to maintain high-performance database services and enable us to continue enhancing our platform.
|
||||
|
||||
Please refer to our [Pricing Page](/pricing) for detailed information, including operation costs and included quotas for different plans.
|
||||
|
||||

|
||||
|
||||
# How it works
|
||||
|
||||
Database operations in Appwrite are categorized into two types:
|
||||
|
||||
## Read operations
|
||||
|
||||
Any action that retrieves data from your database, including:
|
||||
- Fetching documents with `getDocument` or `listDocuments`
|
||||
- Running queries with `find`
|
||||
- Counting documents with `count`
|
||||
|
||||
## Write operations
|
||||
|
||||
Any action that modifies data in your database, including:
|
||||
- Creating documents with `createDocument`
|
||||
- Updating documents with `updateDocument`
|
||||
- Deleting documents with `deleteDocument`
|
||||
- Batch operations that modify multiple documents
|
||||
|
||||
**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.
|
||||
|
||||
# Your usage
|
||||
|
||||
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.
|
||||
|
||||
# Optimizing your database operations
|
||||
|
||||
To help you manage your database operations efficiently, here are some best practices:
|
||||
|
||||
1. **Use efficient queries**: Filter data on the server side rather than retrieving large datasets and filtering client-side
|
||||
2. **Implement pagination**: Use the `limit` and `offset` parameters to retrieve only the data you need
|
||||
3. **Consider caching**: Cache frequently accessed data to reduce repeated read operations
|
||||
4. **Monitor usage**: Keep track of your database operations through the Appwrite Console
|
||||
|
||||
# We're here to help
|
||||
|
||||
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 [billing@appwrite.io](mailto:billing@appwrite.io).
|
||||
|
||||
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.
|
||||
@@ -111,6 +111,11 @@
|
||||
new: isNewUntil('15 Apr 2025'),
|
||||
label: 'Image Transformations',
|
||||
href: '/docs/advanced/platform/image-transformations'
|
||||
},
|
||||
{
|
||||
new: isNewUntil('30 Apr 2025'),
|
||||
label: 'Database Reads and Writes',
|
||||
href: '/docs/advanced/platform/database-reads-and-writes'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -110,4 +110,10 @@ Learn about Appwrite's different compute add-ons.
|
||||
{% cards_item href="/docs/advanced/platform/phone-otp" title="Phone OTP" %}
|
||||
Learn how Appwrite handles SMS-based OTP authentication.
|
||||
{% /cards_item %}
|
||||
{% cards_item href="/docs/advanced/platform/image-transformations" title="Image Transformations" %}
|
||||
Learn how to transform images dynamically with Appwrite.
|
||||
{% /cards_item %}
|
||||
{% cards_item href="/docs/advanced/platform/database-reads-and-writes" title="Database Reads and Writes" %}
|
||||
Learn how Appwrite handles database reads and writes.
|
||||
{% /cards_item %}
|
||||
{% /cards %}
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
layout: article
|
||||
title: Database Reads and Writes
|
||||
description: Learn how Appwrite handles database reads and writes and their associated costs.
|
||||
---
|
||||
{% info title="Note" %}
|
||||
Updated pricing will take effect on April 15th, 2025. Check out this [blog post](/blog/post/announcing-database-operations-pricing) for more information.
|
||||
{% /info %}
|
||||
|
||||
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.
|
||||
|
||||
## Database Operations
|
||||
|
||||
Database operations in Appwrite are categorized into two types:
|
||||
|
||||
**Read Operations**: Any action that retrieves data from your database, including:
|
||||
- Fetching documents with `getDocument` or `listDocuments`
|
||||
- Running queries with `find`
|
||||
- Counting documents with `count`
|
||||
|
||||
**Write Operations**: Any action that modifies data in your database, including:
|
||||
- Creating documents with `createDocument`
|
||||
- Updating documents with `updateDocument`
|
||||
- Deleting documents with `deleteDocument`
|
||||
- Batch operations that modify multiple documents
|
||||
|
||||
How it works:
|
||||
1. Perform database operations through the Appwrite SDK or API
|
||||
2. Appwrite automatically tracks and logs these operations
|
||||
3. Operations are counted based on the number of documents affected, not API calls
|
||||
4. Quotas are refreshed monthly based on your subscription plan
|
||||
|
||||
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.
|
||||
|
||||
## Pricing
|
||||
|
||||
### Free Plan
|
||||
- **Included**: 1,000,000 read operations and 100,000 write operations per month
|
||||
- **Overage**: Not available (operations are throttled when limits are reached)
|
||||
|
||||
### Pro Plan
|
||||
- **Included**: 10,000,000 read operations and 1,000,000 write operations per month
|
||||
- **Overage**: $0.20 per 100,000 additional read operations and $0.50 per 100,000 additional write operations
|
||||
|
||||
### Scale Plan
|
||||
- **Included**: 50,000,000 read operations and 5,000,000 write operations per month
|
||||
- **Overage**: $0.15 per 100,000 additional read operations and $0.40 per 100,000 additional write operations
|
||||
|
||||
### Enterprise Plan
|
||||
- **Custom quotas and pricing**: Contact our [sales team](/contact/sales) for tailored solutions based on your specific needs
|
||||
|
||||
For detailed information about the different pricing options and features, please visit the [pricing page](/pricing).
|
||||
|
||||
## Best Practices
|
||||
|
||||
To optimize your database operations and control costs:
|
||||
|
||||
1. **Use efficient queries**: Filter data on the server side rather than retrieving large datasets and filtering client-side
|
||||
2. **Implement pagination**: Use the `limit` and `offset` parameters to retrieve only the data you need
|
||||
3. **Monitor usage**: Keep track of your database operations through the Appwrite Console
|
||||
4. **Consider caching**: Cache frequently accessed data to reduce repeated read operations
|
||||
Reference in New Issue
Block a user