Skip to content
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

chore(docs): final polish to comparison table. #709

Merged
merged 10 commits into from
May 9, 2024
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 @@ -912,25 +911,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
118 changes: 3 additions & 115 deletions website/docs/concepts/comparisons/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,118 +49,6 @@ Low Code platforms are a game changer when it comes to faster development cycle,

**When to choose Metatype**

1. When you want more control over your application instances running on the cloud.
2. When you want to build more complex APIs.
3. When you want to have the freedom to make detailed changes to your application to gain that extra peformance.


Feature/Capability Key:
- :white_check_mark: 1st class, with no extra dependencies.
- :white_circle: supported, but with extra 3rd party dependencies
- :large_orange_diamond: supported, but with extra 3rd party dependencies and user code.
- :red_circle: not officially supported or documented.

| | 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 |
| 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: |
| 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: |
| 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 |
| 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 |
| 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 |
| 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 | | | | |


### Table Parameters Legend

#### Solution's Meta
**Licensing**: The type of licensing model the software solution adopts, such as open-source, proprietary, freemium, etc.

**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.

#### Network comms

**REST/HTTP**: Support for Representational State Transfer (REST) or Hypertext Transfer Protocol (HTTP) communication protocol used for network communication.

**GraphQL**: Support for GraphQL.

**gRPC**: Support for gRPC.

#### Ecosystem
**GUI for non programmers**: Graphical User Interface (GUI) tools designed to facilitate interaction with the software by individuals with limited programming knowledge or expertise. {/* some have and some don't from the mentioned examples */}

**Development SDKs**: Software Development Kits (SDKs) provided by the solution to aid developers in building applications using the platform.

**CLI**: Command-Line Interface tools provided for developers or administrators to interact with the software from the terminal or command prompt.

**Dev Tools**: Tools and utilities provided to aid developers in coding, debugging, testing, and profiling applications.

**LSP and Extensions**: Language Server Protocol (LSP) and Extensions support for enhanced development experience, including features like syntax highlighting, auto-completion, and error checking.

#### Security
**Authentication**: Mechanisms for verifying the identity of users or entities accessing the software solution.

**Authorization**: The process of determining whether an authenticated user or system entity is allowed to perform a specific action or access a particular resource.

#### 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.

#### 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.

#### 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**:

#### Versioning and CI/CD
**Version Control**: The support for versioning and revision control of software artifacts, typically using systems like Git, SVN, etc.

**GitOPs Friendly**: Compatibility or support for the GitOps methodology, where infrastructure and application deployments are managed through Git workflows.

#### Scalability
{/* how to express scalability using facts */}
**Vertical Scalability**: The ability of the software solution to handle increased workload or demand by adding more resources to a single node or instance.

**Service Decomposition**: The architectural principle of breaking down the software into smaller, independent services (microservices) to improve scalability, maintainability, and flexibility.

#### Deployment
**Deployment Options**: The available methods and strategies for deploying the software solution, including on-premises, cloud-based, containerized, etc.

#### Monitoring, Logging and maintenance
**Monitoring and Tracking**: Tools and mechanisms provided for monitoring the health, performance, and usage of the software solution, as well as tracking user activities and behaviors.

**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
**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.
1. When you want to implement modular APIs and backends with instantaneous responses
2. When you want to interact with workflow engines and control over the operations they perform, including pooling and retries
3. When you look for a serverless deployment solution and want to focus on your business logic