I was wondering what is the strategy employed by Appwrite regarding collection and collection attribute creations via SDK. Consider the code below. I executed this migration 5x and always got an error saying createDocument had an invalid document structure ('designation' attribute does not exist on specified collection). Then, I added the 4s sleep and the migration started to pass.
Does this mean that Appwrite accepts the request and responds with 201 Created before actually writing the collection as a table on the cloud MariaDB instance? If so, could you tell me what is the 99th percentile or even the 95th percentile of elapsed time until an collection attribute is created? E.g.: 99 out of 100 requests, the attribute is created under 500ms.
await db.createCollection(db.id, this.#collectionID, this.#collectionID);
log(`Created collection with ID: ${db.id}`);
// Required Fields
await db.createStringAttribute(db.id, this.#collectionID, 'designation', 32, true);
await db.createStringAttribute(db.id, this.#collectionID, 'friendly', 64, true);
await new Promise((resolve) => setTimeout(resolve, 4000));
// Create fixed documents
await db.createDocument(db.id, this.#collectionID, ID.unique(), {
designation: 'sms',
friendly: 'SMS',
});
Does this mean that Appwrite accepts the request and responds with 201 Created before actually writing the collection as a table on the cloud MariaDB instance?
essentially yes. The DB operations go to a worker to create the actual entities in the database: https://github.com/appwrite/appwrite/blob/main/src/Appwrite/Platform/Workers/Databases.php
You should poll for their status until they're available. That's what the CLI does: https://github.com/appwrite/sdk-for-cli/blob/ae7f9fecbbe5cc0cc702e878fd48cc8559fa18b2/lib/commands/deploy.js#L639-L647
when it is available depends on the queue
Recommended threads
- Does 1.9.0 Self Hosted have MongoDB Atla...
I have been playing with the new 1.9.0 update and I am really excited for the MongoDB support. I wanted to ask though if at the current time Appwrite supports b...
- {"code": 1008, "message": "Invalid Origi...
Nothing has changed in my application or console settings so I'm curious as to what I need to do to fix this. I already have the client registered so I'm not en...
- NEW ERROR Invalid document structure: At...
Error: ```AppwriteException: document_invalid_structure, Invalid document structure: Attribute "pb.kmsgxPkgInfo.id_info" must be an array (400)``` I’m encounter...