# Ottoman Vs SDK Comparison

This document outlines subtle differences between Ottoman and Node.js SDK and also demonstrate the value proposition (advantages) that Ottoman brings over Node.js SDK.

# Value Proposition (Benefits)

# Data Quality

Defining structure to data, validating data and enforcing constraints using lightweight code patterns.

# Affordability

Open Source, secure, fully supported, less maintenance overhead, less infrastructure Affordability, extensible and can work with any Javascript or Typescript native application.

# Agility

Be a leader in your space, build and deliver applications quickly and timely. Spend your time solving business problems rather than coding.

# Adaptability

Don't need specialized skills, all you need is to know JavaScript or TypeScript and you are good to go.

# Supportability and Sustainability

Leave the burden of scanning and patching the software for security vulnerabilities on us. Get constant software updates to align with server releases and get full support from our support team and large developer community.

Affordability, Adaptability, Supportability and Sustainability are available by default across all features in Ottoman.

Feature Ottoman NodeJS SDK Benefits Description
Schema, Constraints and Models 🚫 Data Quality Enables end users to control document shape.
Validators and Custom Data-Type 🚫 Data Quality Ensures data accuracy.
Reference Types and Populate 🚫 Data Quality Provides means to automagically refer and populate referenced documents.
Scopes and collections Data Quality Organize data enabling multi-tenancy and microservices.
Certificate Authentication Data Quality Sets up a secure channel between the application and the Couchbase server.
Document Expiry (TTL) Data Quality Ensures documents get removed from a collection post expiry set.
Model Methods
find()
findOne()
findOneAndRemove()
🚫 Agility Provides methods to easily access documents.
Bootstrapping 🚫 Agility Establishes the connection, issues command to create scopes, collection and build indexes.
Audit Fields (Timestamp) 🚫 Agility Auto enables auditing of fields.
Refdoc Index 🚫 Data Quality Empowers co-existence of non-key unique values.
Typescript, Javascript, Generics support Adaptability, Affordability Written and supported in Javascript and Typescript.
Hooks 🚫 Agility, Data Quality Asynchronous middleware components that perform actions before and after a document is mutated.
Plugins 🚫 Agility Reusable components that can be exported and used across multiple schemas.
Immutable 🚫 Agility, Data Quality Ensures certain data fields remains unchanged.
Lean N/A Agility, Affordability Save on resources when data Quality is not a concern.
Management API
(Basic)
Agility Improve tests provide basic functions to drop buckets,scopes and collections.
Query Builder 🚫 Agility Build, test and execute N1QL queries via Javascript and Typescript.
Bulk Operations 🚫 Agility Provides means to mutate multiple documents in a single operation.
Query Agility, Data Quality Enables document to be accessed via Couchbase N1QL Query.
Search 🚫 N/A Currently Search is available only via N1QL Integration (opens new window).
Analytics 🚫 N/A Currently not available in Ottoman 2.0.
Field Level Encryption 🚫 N/A Currently not available in Ottoman 2.0.
Subdocument Operations 🚫 N/A Currently not available in Ottoman 2.0.
MapReduce Views 🚫 N/A Currently not available in Ottoman 2.0.
Transactions 🚫 🚫 N/A Currently not available in Ottoman 2.0.