-
Notifications
You must be signed in to change notification settings - Fork 985
feat(docs): add developer documentation #9241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This commit introduces a new developer documentation hub under the `devdocs` directory. The goal of this new documentation is to provide a comprehensive resource for developers working on the Firestore JS SDK. The new documentation includes: - **Overview:** A high-level overview of the SDK, its goals, and architecture. - **Prerequisites:** A guide for new contributors, outlining the necessary skills and knowledge. - **Architecture:** A detailed explanation of the SDK's architecture, core components, and data flow. - **Code Layout:** A document that explains the structure of the codebase. - **Build & Testing:** Initial documents for the build and testing processes.
|
Size Report 1Affected Products
Test Logs |
Size Analysis Report 1This report is too large (212,591 characters) to be displayed here in a GitHub comment. Please use the below link to see the full report on Google Cloud Storage.Test Logs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. A few minor comments below.
|
|
||
| 1. **API Layer**: A user initiates a write operation (e.g., `setDoc`, `updateDoc`, `deleteDoc`). | ||
| 2. **Sync Engine**: The call is routed to the Sync Engine, which wraps the operation in a "mutation". | ||
| 3. **Mutation Queue (in Local Store)**: The Sync Engine adds this mutation to the Mutation Queue. The queue is persisted to the **Persistence Layer** (IndexedDB). At this point, the SDK "optimistically" considers the write successful locally. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overlays were added which is missing from the diagram and the description.
|
|
||
| The SDK is composed of several key components that work together to provide the full range of Firestore features. | ||
|
|
||
|  |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if a graphviz dot representation of the diagram would be better to use rather than a png file.
| TODO: Add critical information about the build process including optimizations for code size, etc. | ||
|
|
||
| For information on how the artifacts are built, please see the [Build documentation](./build.md) file. | ||
|
|
||
| ## Testing | ||
|
|
||
| TODO: Add critical information about the tests harness, organization, spec tests, etc. | ||
|
|
||
| For information on how the tests are setup and organized [Testing documentation](./testing.md) file. | ||
|
|
||
| ## Developer Workflow | ||
|
|
||
| TODO: Add list of common commands here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fill in the remaining TODOs (or remove the incomplete sections for now?)
Updated to provide a detailed explanation of the 'Overlays' component within the Local Store, describing its purpose as a performance-optimizing cache for pending mutations. Also updated to consistently list 'Overlays' as a component of the directory, aligning with the architectural overview.
Adds new documentation and updates existing documentation for Firestore data bundles. The new `bundles.md` file provides a deep dive into the concept of bundles, their primary use case for SSR hydration, and other benefits. The `architecture.md` file has been updated to include a high-level overview of bundles and their data flow, consistent with the rest of the document.
This commit introduces a new developer documentation hub under the
devdocsdirectory. The goal of this new documentation is to provide a comprehensive resource for developers working on the Firestore JS SDK.The new documentation includes: