# 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
Data Integrity: Defining structure to data, validating data and enforcing constraints using lightweight code patterns.
# Agile Development
Be a leader in your space, build and deliver applications quickly and timely. Spend your time solving business problems rather than coding.
Minimal learning curve, resource with skill set available in abundance.
|Feature||Ottoman||NodeJS SDK||Value Prop||Description|
|Schema, Constraints||✅||🚫||Data Integrity||Schemas and Constraints enables end users to control document shape.|
|Validators||✅||🚫||Data Integrity||Provides data quality.|
|Reference Types and Populate||✅||🚫||Data Integrity||Provides means to refer and populate referenced documents.|
|Scopes and collections||✅||✅||Data Integrity||Organize data enabling multi-tenancy and microservices.|
|Certificate Authentication||✅||✅||Cost||Sets up a secure channel between the application and the Couchbase server.|
|Document Expiry (TTL)||✅||✅||Cost, Data Integrity||Ensures documents get removed from a collection post expiry set.|
|Model Methods ||✅||🚫||Agile Development, Adaptability||Provides methods to easily access documents.|
|Bootstrapping||✅||🚫||Agile Development, Cost||Establishes the connection, issues command to create scopes, collection and build indexes.|
|Audit Fields (Timestamp)||✅||🚫||Agile Development||Auto enables auditing of fields.|
|Refdoc Index||✅||🚫||Data Integrity||Empowers co-existence of non-key unique values.|
|Hooks||✅||🚫||Agile Development, Data Integrity||Asynchronous middleware components that perform actions before and after a document is mutated.|
|Plugins||✅||🚫||Agile Development||Reusable components that can be exported and used across multiple schemas.|
|Immutable||✅||🚫||Agile Development, Data Integrity||Ensures certain data fields remains unchanged.|
|Lean||✅||N/A||Agile Development, Cost||Save on resources when data integrity is not a concern.|
|Management API||✅ |
|✅||Agile Development||Improve tests provide basic functions to drop buckets,scopes and collections.|
|Bulk Operations||✅||🚫||Agile Development||Provides means to mutate multiple documents in a single operation.|
|Query||✅||✅||Agile Development, Data Integrity||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 V2.|
|Field Level Encryption||🚫||✅||N/A||Currently not available in Ottoman V2.|
|Subdocument Operations||🚫||✅||N/A||Currently not available in Ottoman V2.|
|MapReduce Views||🚫||✅||N/A||Currently not available in Ottoman V2.|
|Transactions||🚫||✅||N/A||Currently not available in Ottoman V2.|