Skip to content

Commit

Permalink
chore(docs): final polish to comparison table. (#709)
Browse files Browse the repository at this point in the history
some changes to comparison table(docs)

#### Migration notes

_No Migrations Needed_

<!-- 5. Readiness checklist
- [ ] The change come with new or modified tests
- [ ] Hard-to-understand functions have explanatory comments
- [ ] End-user documentation is updated to reflect the change
-->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit


- **Documentation**
- Introduced a new section on Artifact Tracking Protocol in the
architecture documentation, explaining artifact classification and
tracking modes in Metatype.
- Updated comparisons documentation with additional platforms, criteria
for choosing Metatype, and detailed feature comparison tables.
- Renamed project directory for clarity and consistency in project setup
documentation.
- **Bug Fixes**
  - Removed outdated `TODO` comment in installation documentation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
  • Loading branch information
destifo authored May 9, 2024
1 parent 75b9728 commit 81ede21
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 46 deletions.
22 changes: 1 addition & 21 deletions .ghjk/lock.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "0",
"platform": "x86_64-linux",
"platform": "aarch64-darwin",
"moduleEntries": {
"ports": {
"version": "0",
Expand Down Expand Up @@ -455,7 +455,6 @@
"9e72a9f857bd9b14b47702b5b8ee660833828d4b",
"cfe6640502ddf9772073889af75888d361b1f2b9",
"8e5e02544073c4733d8f2156c404a0dd524cdaaf",
"e05f859f4a734a85fd3439f9b0fc0de1e733bdac",
"38285a3b335e394ccce5ac5d59e15f660bfa4cc9",
"7bbf00da8e265c56c2bff5bb7d89ba806e2590d2",
"14fd3752a984c5d82e1451f7388c73a21fcce705",
Expand Down Expand Up @@ -921,25 +920,6 @@
},
"packageName": "node-gyp"
},
"e05f859f4a734a85fd3439f9b0fc0de1e733bdac": {
"version": "v2.4.0",
"port": {
"ty": "denoWorker@v1",
"name": "mold_ghrel",
"platforms": [
"aarch64-linux",
"x86_64-linux"
],
"version": "0.1.0",
"deps": [
{
"name": "tar_aa"
}
],
"moduleSpecifier": "https://raw.githubusercontent.com/metatypedev/ghjk/2725af8/ports/mold.ts"
},
"replaceLd": false
},
"38285a3b335e394ccce5ac5d59e15f660bfa4cc9": {
"version": "3.8.18",
"port": {
Expand Down
49 changes: 24 additions & 25 deletions website/docs/concepts/comparisons/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ These are great platforms to quickly start a new project. However, they hardly s
**When to choose Metatype**

1. You want to build modular APIs by composing pre-defined blocks and import the ones you need from existing systems.
2. You want to take advantage of developers tooling you are familiar with like version controls or multiple environments.
3. You favor interoperability and extensibility over vendor lock-in and follow your future needs with ease.
2. You want to take advantage of developers tooling you are familiar with, like version controls or multiple environments.
3. You favor interoperability and extensibility over vendor lock-in, and follow your future needs with ease.
4. You want to decouple your database from your API and change where the data is stored as the project evolves.

## Headless CMS
Expand Down Expand Up @@ -54,6 +54,7 @@ Low Code platforms are a game changer when it comes to faster development cycle,
3. When you want to have the freedom to make detailed changes to your application to gain that extra peformance.


<br/>
Feature/Capability Key:
- :white_check_mark: 1st class, with no extra dependencies.
- :white_circle: supported, but with extra 3rd party dependencies
Expand All @@ -63,32 +64,29 @@ Feature/Capability Key:
| | Metatype | Development Platforms | Headless CMS | Low code platform |
|------------------------|----------------------|-------------|----------------|---------------------------|
| Licensing | [Open Source](https://github.com/metatypedev/metatype/blob/main/dev/LICENSE-MPL-2.0.md) | Open Source <br/> Proprietary | Open Source | Proprietary |
| Platform's Requirements | Cloud-based: None <br/> Locally: Deno/NodeJS/Python Runtime <br/> Redis <br/> Docker | Cloud-based: None <br/> Running Locally: Docker DBMS | NodeJS runtime <br/> DBMS | Cloud-based: None |
| Architecture Model | Declarative <br/> Less Code <br/> Serverless | Serverless, API over Database | | Visual drag and drop |
| Platform's Requirements | - Cloud-based: None <br/> - Locally: Deno/Node.js/Python Runtime, Redis, Docker | - Cloud-based: None <br/> - Running Locally: Docker, DBMS | - NodeJS runtime <br/> - DBMS | Cloud-based: None |
| Architecture Model | - Declarative <br/> - Less Code <br/> - Serverless | - API over Database <br/> - Serverless | - Headless Architecture <br/> - Serverless | - Visual drag and drop <br/> - Serverless |
| REST/HTTP | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| GraphQL | :white_check_mark: | :white_circle: | :white_check_mark: | :large_orange_diamond: |
| gRPC | | :large_orange_diamond: | :large_orange_diamond: | :large_orange_diamond: |
| gRPC | :large_orange_diamond:* | :large_orange_diamond: | :large_orange_diamond: | :large_orange_diamond: |
| GUI for non programmers | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Development SDKs | :white_check_mark: | :white_check_mark: | :red_circle: | :red_circle: (Most) :white_check_mark: (few) |
| CLI | :white_check_mark: | :white_check_mark: (some) :red_circle: (some) | :white_check_mark: | :red_circle: |
| Development SDKs | :white_check_mark: | :white_check_mark: | :red_circle: | :red_circle: (Most) <br/> :white_check_mark: (few) |
| CLI | :white_check_mark: | :white_check_mark: (some) <br/> :red_circle: (some) | :white_check_mark: | :red_circle: |
| Dev Tools | :white_check_mark: | :white_check_mark: | :white_check_mark: | :red_circle: |
| LSP and Extensions | :white_check_mark:* | :white_circle: | :white_circle: | :red_circle: |
| Authentication | Basic Auth JWT OAuth | Basic Auth JWT OAuth JWT | email/phone/password JWT OAuth JWT | email/phone/password JWT OAuth JWT |
| Authorization | policy-based access control (PBAC) | policy-based access control (PBAC) role-based access control (RBAC) | role-based access control (RBAC) | Custom Authorization logic from the User |
| Type System | [Custom Types](/docs/reference/types) | JS objects GraphQL Schemas Database Types | JS objects | Custom Types |
| Database Toolkit/ORM | Prisma | PostgreSQL Custom ORMs | Waterline Custom ORMs | N/A |
| Query Planning Model | | proprietary query planner <br/> PostgreSQL's query planner | DBMS's query planner | proprietary query planner |
| Query Computing Model | | distributed computing model <br/> PostgreSQL's query execution model | DBMS's query execution engines | proprietary query computing model |
| Authentication | - Basic Auth <br/> - JWT <br/> - OAuth | - Basic Auth <br/> - JWT <br/> - OAuth <br/> - JWT | - email/phone/password <br/> - JWT - OAuth | - email/phone/password <br/> - JWT <br/> - OAuth <br/> - JWT |
| Authorization | - policy-based access control (PBAC) | - policy-based access control (PBAC) <br/> - role-based access control (RBAC) | - role-based access control (RBAC) | - Custom Authorization logic from the User |
| Type System | [Custom Types](/docs/reference/types) | - JS objects <br/> - GraphQL Schemas <br/> - Database Types | JS objects | Custom Types |
| Custom Code Support | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Version Control | Git <br/> BitBucket | Git <br/> BitBucket | Git <br/> BitBucket | Git <br/> BitBucket |
| Version Control Friendly | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| GitOPs Friendly | :white_check_mark: | :white_check_mark: | :white_circle: | :white_circle: |
| Vertical Scalability | Flexibile | Limited | Flexibile | Limited |
| Service Decomposition | :white_check_mark: | :white_check_mark: | :white_check_mark: | :red_circle: |
| Deployment Options | On premise <br/> cloud-based platforms | On premise <br/> cloud-based platforms | On premise <br/> cloud-based platforms | On premise <br/> cloud-based platforms |
| Deployment Options | - On premise <br/> - Cloud-based platforms | - On premise <br/> - Cloud-based platforms | - On premise <br/> - Cloud-based platforms | - On premise <br/> - Cloud-based platforms |
| Monitoring and Tracking | :white_check_mark:* | :white_check_mark: | :white_check_mark: | :large_orange_diamond: |
| Logging | :white_check_mark:* | :white_check_mark: | :white_check_mark: | :large_orange_diamond: |
| Query Plan Time | | | | |
| Query Compute Time | | | | |
{/* | Query Plan Time | | | | |
| Query Compute Time | | | | | */}


### Table Parameters Legend
Expand All @@ -98,7 +96,7 @@ Feature/Capability Key:

**Platform's Requirements**: The prerequisites and dependencies required for the software to run efficiently, including hardware, operating system, runtime environment, etc.

**Architecture Model**: The underlying design principles and patterns governing the structure of the software solution.
**Architecture Model**: The underlying design principles and patterns governing the behavior/structure of the software solution.

#### Network comms

Expand Down Expand Up @@ -127,17 +125,17 @@ Feature/Capability Key:
#### Database Interaction
**Type System**: The system governing the data types and structures used by which the application entities and models are constructed.

**Database Toolkit/ORM**: Tools or Object-Relational Mapping (ORM) frameworks used internally.
{/* **Database Toolkit/ORM**: Tools or Object-Relational Mapping (ORM) frameworks used internally. */}

#### Query Processing
{/* #### Query Processing
**Query Planning Model**: The approach used for optimizing and planning the execution of incoming requests to improve performance and efficiency.
**Query Computing Model**: The model used for executing network queries and processing data.
**Query Computing Model**: The model used for executing network queries and processing data. */}

#### System Flexibility
**Custom Code support**: The ability of the software solution to accommodate custom code or extensions developed by users or third-party developers.

**Customizability**:
{/* **Customizability**: */}

#### Versioning and CI/CD
**Version Control**: The support for versioning and revision control of software artifacts, typically using systems like Git, SVN, etc.
Expand All @@ -158,9 +156,10 @@ Feature/Capability Key:

**Logging**: Facilities for recording and storing system events, errors, and other relevant information for troubleshooting, analysis, and auditing purposes.

#### Safety and Fault tolerance

#### Basic Benchmarks
{/* #### Safety and Fault tolerance (TODO) */}

{/* #### Basic Benchmarks (TODO)
**Query Plan Time**: The time taken by the system to plan and optimize the execution of a request.
**Query Compute Time**: The time taken by the system to process and compute the results of a request.
**Query Compute Time**: The time taken by the system to process and compute the results of a request. */}

0 comments on commit 81ede21

Please sign in to comment.