Globalcode	–	Open4education
JSDB - NoSQL Funcional e Minimalista
Paulo Henrique Ferreira de Lima
pflima92@gmail.com | http://jspare.org
Globalcode	–	Open4education
About me
Paulo Lima
Email: pflima92@gmail.com
Twitter: @pflima92
Github: github@pflima92
Globalcode	–	Open4education
JSDB NoSQL Database
JSpare.org
The simple, simple
Globalcode	–	Open4education
JSDB NoSQL Database
C
Consistency
Availability Partition Tolerance
PA
CA CP
AP
* Bigtable
* Hbase
* MongoDB
* DynamoDb
* Cassandra
* CouchDB
* RBMS
Globalcode	–	Open4education
JSDB NoSQL Database
Consistency + Availability
Globalcode	–	Open4education
JSDB NoSQL Database
RDMS - ACID
• Atomic
• Consistent
• Isolated
• Durable
NoSQL - BASE
• Basically Available
• Soft State
• Eventually Consistent
Globalcode	–	Open4education
JSDB NoSQL Database
Consistency + Partition Tolerance
Globalcode	–	Open4education
JSDB NoSQL Database
Globalcode	–	Open4education
JSDB NoSQL Database
Availability + Partition Tolerance
Globalcode	–	Open4education
JSDB NoSQL Database
Availability + Partition Tolerance
Globalcode	–	Open4education
JSDB NoSQL Database
C
Consistency
Availability Partition Tolerance
PA
CA CP
AP
* Bigtable
* Hbase
* MongoDB
* RBMS
AP
* JSDB
Globalcode	–	Open4education
Globalcode	–	Open4education
JSDB NoSQL Database
Who? When? Where?
Globalcode	–	Open4education
JSDB NoSQL Database
Designed to be Simple
Globalcode	–	Open4education
JSDB NoSQL Database
Small apps
Short projects
Low latency
Globalcode	–	Open4education
JSDB NoSQL Database
Cloud instances
Embedded apps
Micro services
Globalcode	–	Open4education
+
JSDB NoSQL Database
NoSQL
Globalcode	–	Open4education
JSDB NoSQL Database
Easy installation
npm install -g jsdb-server
standalone packs (win64, osx, linux)
Simple configurations
Globalcode	–	Open4education
JSDB NoSQL Database
Integrate your project
node express integration (experimental, caution with i/o)
it is simple to use
Globalcode	–	Open4education
JSDB NoSQL Database
Simple data structure
instances ==> schemas
domains ==> families / tables
• jsdb> addInstance public
• jsdb> use public
• jsdb> addDomain person
Globalcode	–	Open4education
JSDB NoSQL Database
Key / Values
Globalcode	–	Open4education
JSDB NoSQL Database
Mutable domains
Your data structure can change
Careful with migrations
Globalcode	–	Open4education
JSDB NoSQL Database
Simple connectivity
HTTP Rest Stateless
Simple APIs
Globalcode	–	Open4education
JSDB NoSQL Database
Building scenario
Online user management
Globalcode	–	Open4education
JSDB NoSQL Database
Connection
Globalcode	–	Open4education
JSDB NoSQL Database
Defining simple data scheme
Globalcode	–	Open4education
JSDB NoSQL Database
Using with microservice
Simple sample with rest service using jsdb
Globalcode	–	Open4education
JSDB NoSQL Database
Persist person
Globalcode	–	Open4education
JSDB NoSQL Database
Batch inserts
Globalcode	–	Open4education
JSDB NoSQL Database
Querying data
Retrieve all records:
GET : /persons
Filtering by fields:
GET: /persons?minBadge=1&maxBadge=1500&gender=MALE
Filtering by Id:
GET: /persons/61651899622
Globalcode	–	Open4education
Globalcode	–	Open4education
JSDB NoSQL Database
Globalcode	–	Open4education
JSDB NoSQL Database
Delete person
Globalcode	–	Open4education
JSDB NoSQL Database
Minimalist operations
Persist (Insert and Update)
QueryFor (Query domain data)
Remove (Delete some data object)
Globalcode	–	Open4education
APIs in progress…
JSDB Tools
Contribute for improve this list!
Globalcode	–	Open4education
JSDB NoSQL Database
Large todo list
JSDB CLI
jsdb> [command] [args]
JSDB Workbench
GUI
Data Model and Workbench
Expansível (Integration, Plugins, BI, etc…)
Globalcode	–	Open4education
JSDB NoSQL Database
Contribute with JSDB
Website and Docs:
http://jspare.org/jsdb
Access our github:

https://github.com/jspare-framework/jsdb
Issues, Suggestions and Bugs o.O:

https://github.com/jspare-framework/jsdb/issues
Globalcode	–	Open4education
JSDB NoSQL Database
Questions ?
Globalcode	–	Open4education
JSDB
NoSQL
Globalcode	–	Open4education
JSDB Over Architecture
Server
Client
Http Module
JSON
Rest
APIs
H
a
n
d
l
e
r
JSDB
Executor
Res
Data
FF
FF
FF
FF
FF
FF
Holder
SCY KERNEL
FF
FF
FF
LOGGER
STORAGE
I/O

JSDB - NoSQL Funcional e Minimalista - TDC 2016