SlideShare a Scribd company logo
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
FULL-STACK DEVELOPMENT
WITH JAVASCRIPT AND NOSQL
Aaron Benton - @bentonam - aaron.benton@couchbase.com
Solutions Architect at Couchbase
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
Couchbase Day – Charlotte, NC
2
Location: C3 Lab – 2525 Distribution Street, Charlotte, NC 28203
Time: 8:30 AM – 3:30 PM
This FREE event will be packed with presentations and hands-on labs you don’t want to miss. After a brief overview of
the Couchbase Data Platform capabilities, we’ll dive into its technical architecture and how it provides flexible and
feature-rich data facilities for consistent mobile and web experiences. Then we’ll dig deeper into Full Text Search and
Couchbase Mobile.
Register: https://www.couchbase.com/resources/events/2018/february/cbd-charlotte
bit.ly/CBDCTL
Crowne Plaza Times Square, Manhattan
• 3 hands-on workshops
• 30+ breakout sessions across 4 tracks
• Demos, labs, and panel discussions
• Face-to-face time with thought leaders and Couchbase engineers
Visit the Connect site: connect.couchbase.com
Become a speaker: bit.ly/cbconnectspeakers
Get inspired at our premier customer event and start your own digital revolution.
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 4
Full Stack Development
NoSQL DevOps UI / UX Testing OS
Source Control Backend Automation APIs Documentation
Networking QA Integration Hosting
Tuning SQL Agile Frontend Frameworks
IDE Cloud Deployment Mobile Containers
BUZZWORD
BINGO
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 5
Development
{…}
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 6
The Power of the Flexible JSON Schema
• Ability to store data in multiple
ways
• De-normalized single
document, as opposed to
normalizing data across
multiple table
• Dynamic Schema to add new
values when needed
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
WHAT IS COUCHBASE?
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved. 8
Couchbase Data
Platform
• Service-Centric Clustered Data System
- Multi-process Architecture
- Dynamic Distribution of Facilities
- Cluster Map Distribution
- Automatic Failover
- Enterprise Monitoring/Management
- Security
• Offline Mobile Data Integration
• Streaming REST API
• SQL-like Query Engine for JSON
• Clustered* Global Indexes
• Lowest Latency Key-Value API
• Active-Active Inter-DC Replication
• Local Aggregate Indexes
• Full-Text Search*
• Operational Analytics*
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 9
Couchbase Server Overview
▪ Scale easily to thousands of nodes
▪ Consistent high performance that
supports millions of concurrent users
▪ Flexible JSON data model
▪ 24x365 always-on availability
Couchbase Server
Database Server
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 10
Downloading Couchbase Server
• Download Couchbase Server Online
• couchbase.com/downloads
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 11
Installing Couchbase Server
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
DEMO
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 13
Technologies
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 14
Project
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 15
docker-compose.yaml
./docker-compose.yaml ./docker-compose.yaml
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 16
docker-compose.yaml
./docker-compose.yaml ./docker-compose.yaml
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 17
nginx.conf
./.docker/nginx.conf ./.docker/nginx.conf
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 18
Dockerfile
./backend/Dockerfile ./frontend/Dockerfile
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 19
Makefile
./backend/Makefile ./backend/Makefile
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 20
Running the Environment
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 21
Koa - Demo
./backend/app/server.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 22
Couchbase Document
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 23
Koa - Connecting to Couchbase
./backend/app/db.js ./backend/app/server.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 24
Koa - API Setup
./backend/app/server.js ./backend/app/router.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 25
Koa - API Setup
./backend/app/router.js ./backend/app/router.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 26
What is N1QL?
• Non-first (N1) Normal Form Query Language (QL)
• It is based on ANSI 92 SQL
• Its query engine is optimized for modern, highly parallel multi-core execution
• SQL-like Query Language
• Expressive, familiar, and feature-rich language for querying, transforming, and manipulating JSON data
• N1QL extends SQL to handle data that is:
• Nested: Contains nested objects, arrays
• Heterogeneous: Schema-optional, non-uniform
• Distributed: Partitioned across a cluster
Flexibility of
JSON
Power of SQL
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 27
Koa - API Setup
./backend/app/router.js ./backend/app/router.js./backend/app/router.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 28
Koa - API Setup
./backend/app/router.js ./backend/app/router.js
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 29
Vue
./frontend/src/App.vue ./frontend/src/App.vue ./frontend/src/App.vue
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 30
Vue - Methods
./frontend/src/App.vue ./frontend/src/App.vue
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 31
Vue - Methods
./frontend/src/App.vue
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 32
Running the App
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
GIVEAWAY!
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
THANK YOU
• Repo: git.io/vAqoJ
• Couchbase Day CLT: bit.ly/CBDCTL
• Couchbase RTP: bit.ly/couchbase-rtp
@bentonam / aaron.benton@couchbase.com
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved. 35
500+ Digital Businesses Run on Couchbase
6 of the Top 10
E-Commerce
Companies
in the US
6 of the Top 10
US & European
Broadcast Companies
6 of the Top 10
Online Casino
Gaming
Companies
The Top 3
Credit Reporting Companies
The top 3
GDS Companies
3 of the Top 10
Airlines

More Related Content

What's hot

How do spark_kafka_and_syncsort_dmx-h
How do spark_kafka_and_syncsort_dmx-hHow do spark_kafka_and_syncsort_dmx-h
How do spark_kafka_and_syncsort_dmx-h
Precisely
 
Internet-enabled GIS Using Free and Open Source Tools
Internet-enabled GIS Using Free and Open Source ToolsInternet-enabled GIS Using Free and Open Source Tools
Internet-enabled GIS Using Free and Open Source Tools
John Reiser
 
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, AdidasNavigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
HostedbyConfluent
 
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
HostedbyConfluent
 
Confluent and Syncsort Webinar August 2016
Confluent and Syncsort Webinar August 2016Confluent and Syncsort Webinar August 2016
Confluent and Syncsort Webinar August 2016
Precisely
 
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
HostedbyConfluent
 
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
Rainforest QA
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
Jo-fai Chow
 
introduction to Neo4j (Tabriz Software Open Talks)
introduction to Neo4j (Tabriz Software Open Talks)introduction to Neo4j (Tabriz Software Open Talks)
introduction to Neo4j (Tabriz Software Open Talks)
Farzin Bagheri
 
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
Red Hat Developers
 
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
HostedbyConfluent
 
That won’t fit into RAM - Michał Brzezicki
That won’t fit into RAM -  Michał  BrzezickiThat won’t fit into RAM -  Michał  Brzezicki
That won’t fit into RAM - Michał Brzezicki
Evention
 
Solving Hybrid Cloud Data Replication with Apache Cassandra
Solving Hybrid Cloud Data Replication with Apache CassandraSolving Hybrid Cloud Data Replication with Apache Cassandra
Solving Hybrid Cloud Data Replication with Apache Cassandra
Aaron Ploetz
 
Hadoop on OpenStack - Sahara @DevNation 2014
Hadoop on OpenStack - Sahara @DevNation 2014Hadoop on OpenStack - Sahara @DevNation 2014
Hadoop on OpenStack - Sahara @DevNation 2014
spinningmatt
 
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
confluent
 
Cloud management portal - admin view
Cloud management portal - admin viewCloud management portal - admin view
Cloud management portal - admin view
ShapeBlue
 
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
Redis Labs
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Lucas Jellema
 
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial InnovationFOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
Marc Vloemans
 
Incrementally streaming rdbms data to your data lake automagically
Incrementally streaming rdbms data to your data lake automagicallyIncrementally streaming rdbms data to your data lake automagically
Incrementally streaming rdbms data to your data lake automagically
Timothy Spann
 

What's hot (20)

How do spark_kafka_and_syncsort_dmx-h
How do spark_kafka_and_syncsort_dmx-hHow do spark_kafka_and_syncsort_dmx-h
How do spark_kafka_and_syncsort_dmx-h
 
Internet-enabled GIS Using Free and Open Source Tools
Internet-enabled GIS Using Free and Open Source ToolsInternet-enabled GIS Using Free and Open Source Tools
Internet-enabled GIS Using Free and Open Source Tools
 
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, AdidasNavigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
Navigating the obdervability storm with Kafka | Jose Manuel Cristobal, Adidas
 
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
Couchbase Cloud No Equal (Rick Jacobs, Couchbase) Kafka Summit 2020
 
Confluent and Syncsort Webinar August 2016
Confluent and Syncsort Webinar August 2016Confluent and Syncsort Webinar August 2016
Confluent and Syncsort Webinar August 2016
 
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
Creating a Kafka Topic. Super easy? | Andrew Stevenson and Marios Andreopoulo...
 
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
 
introduction to Neo4j (Tabriz Software Open Talks)
introduction to Neo4j (Tabriz Software Open Talks)introduction to Neo4j (Tabriz Software Open Talks)
introduction to Neo4j (Tabriz Software Open Talks)
 
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
 
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
 
That won’t fit into RAM - Michał Brzezicki
That won’t fit into RAM -  Michał  BrzezickiThat won’t fit into RAM -  Michał  Brzezicki
That won’t fit into RAM - Michał Brzezicki
 
Solving Hybrid Cloud Data Replication with Apache Cassandra
Solving Hybrid Cloud Data Replication with Apache CassandraSolving Hybrid Cloud Data Replication with Apache Cassandra
Solving Hybrid Cloud Data Replication with Apache Cassandra
 
Hadoop on OpenStack - Sahara @DevNation 2014
Hadoop on OpenStack - Sahara @DevNation 2014Hadoop on OpenStack - Sahara @DevNation 2014
Hadoop on OpenStack - Sahara @DevNation 2014
 
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
 
Cloud management portal - admin view
Cloud management portal - admin viewCloud management portal - admin view
Cloud management portal - admin view
 
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
RedisConf17 - Redfin - The Real Estate Brokerage and the In-memory Database
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial InnovationFOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
FOSS4G 2017 Boston LocationTech; Big Data at the Heart of Geospatial Innovation
 
Incrementally streaming rdbms data to your data lake automagically
Incrementally streaming rdbms data to your data lake automagicallyIncrementally streaming rdbms data to your data lake automagically
Incrementally streaming rdbms data to your data lake automagically
 

Similar to Full-Stack Development with JavaScript and NoSQL

Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
confluent
 
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQLBig Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Matt Stubbs
 
No sql data-storage for-your-ios-apps-using-couchbase-mobile
No sql data-storage for-your-ios-apps-using-couchbase-mobileNo sql data-storage for-your-ios-apps-using-couchbase-mobile
No sql data-storage for-your-ios-apps-using-couchbase-mobile
Priya Rajagopal
 
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon
 
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQLCouchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
DATAVERSITY
 
Developing Applications with Go and NoSQL
Developing Applications with Go and NoSQLDeveloping Applications with Go and NoSQL
Developing Applications with Go and NoSQL
Nic Raboy
 
GSJUG: Mastering Data Streaming Pipelines 09May2023
GSJUG: Mastering Data Streaming Pipelines 09May2023GSJUG: Mastering Data Streaming Pipelines 09May2023
GSJUG: Mastering Data Streaming Pipelines 09May2023
Timothy Spann
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiences
Denis Wilson Souza Rosa
 
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
HostedbyConfluent
 
Select ML from Databases
Select ML from DatabasesSelect ML from Databases
Select ML from Databases
Nithish Raghunandanan
 
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdfOSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
Timothy Spann
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
Paradigma Digital
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
Christian Posta
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
Ed Burns
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
Rachel Wandishin
 
Select ML from Databases.pdf
Select ML from Databases.pdfSelect ML from Databases.pdf
Select ML from Databases.pdf
Nithish Raghunandanan
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
Timothy Spann
 
The Modern Database for Enterprise Applications
The Modern Database for Enterprise ApplicationsThe Modern Database for Enterprise Applications
The Modern Database for Enterprise Applications
QAware GmbH
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application Development
Henry J. Kröger
 

Similar to Full-Stack Development with JavaScript and NoSQL (20)

Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
 
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQLBig Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
 
No sql data-storage for-your-ios-apps-using-couchbase-mobile
No sql data-storage for-your-ios-apps-using-couchbase-mobileNo sql data-storage for-your-ios-apps-using-couchbase-mobile
No sql data-storage for-your-ios-apps-using-couchbase-mobile
 
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
 
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQLCouchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
Couchbase and Apache Kafka - Bridging the gap between RDBMS and NoSQL
 
Developing Applications with Go and NoSQL
Developing Applications with Go and NoSQLDeveloping Applications with Go and NoSQL
Developing Applications with Go and NoSQL
 
GSJUG: Mastering Data Streaming Pipelines 09May2023
GSJUG: Mastering Data Streaming Pipelines 09May2023GSJUG: Mastering Data Streaming Pipelines 09May2023
GSJUG: Mastering Data Streaming Pipelines 09May2023
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiences
 
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
Building Scalable Real-Time Data Pipelines with the Couchbase Kafka Connector...
 
Select ML from Databases
Select ML from DatabasesSelect ML from Databases
Select ML from Databases
 
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdfOSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
 
Select ML from Databases.pdf
Select ML from Databases.pdfSelect ML from Databases.pdf
Select ML from Databases.pdf
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
 
The Modern Database for Enterprise Applications
The Modern Database for Enterprise ApplicationsThe Modern Database for Enterprise Applications
The Modern Database for Enterprise Applications
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application Development
 

Recently uploaded

"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 

Recently uploaded (20)

"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 

Full-Stack Development with JavaScript and NoSQL

  • 1. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. FULL-STACK DEVELOPMENT WITH JAVASCRIPT AND NOSQL Aaron Benton - @bentonam - aaron.benton@couchbase.com Solutions Architect at Couchbase
  • 2. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved. Couchbase Day – Charlotte, NC 2 Location: C3 Lab – 2525 Distribution Street, Charlotte, NC 28203 Time: 8:30 AM – 3:30 PM This FREE event will be packed with presentations and hands-on labs you don’t want to miss. After a brief overview of the Couchbase Data Platform capabilities, we’ll dive into its technical architecture and how it provides flexible and feature-rich data facilities for consistent mobile and web experiences. Then we’ll dig deeper into Full Text Search and Couchbase Mobile. Register: https://www.couchbase.com/resources/events/2018/february/cbd-charlotte bit.ly/CBDCTL
  • 3. Crowne Plaza Times Square, Manhattan • 3 hands-on workshops • 30+ breakout sessions across 4 tracks • Demos, labs, and panel discussions • Face-to-face time with thought leaders and Couchbase engineers Visit the Connect site: connect.couchbase.com Become a speaker: bit.ly/cbconnectspeakers Get inspired at our premier customer event and start your own digital revolution.
  • 4. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 4 Full Stack Development NoSQL DevOps UI / UX Testing OS Source Control Backend Automation APIs Documentation Networking QA Integration Hosting Tuning SQL Agile Frontend Frameworks IDE Cloud Deployment Mobile Containers BUZZWORD BINGO
  • 5. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 5 Development {…}
  • 6. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 6 The Power of the Flexible JSON Schema • Ability to store data in multiple ways • De-normalized single document, as opposed to normalizing data across multiple table • Dynamic Schema to add new values when needed
  • 7. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. WHAT IS COUCHBASE?
  • 8. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved. 8 Couchbase Data Platform • Service-Centric Clustered Data System - Multi-process Architecture - Dynamic Distribution of Facilities - Cluster Map Distribution - Automatic Failover - Enterprise Monitoring/Management - Security • Offline Mobile Data Integration • Streaming REST API • SQL-like Query Engine for JSON • Clustered* Global Indexes • Lowest Latency Key-Value API • Active-Active Inter-DC Replication • Local Aggregate Indexes • Full-Text Search* • Operational Analytics*
  • 9. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 9 Couchbase Server Overview ▪ Scale easily to thousands of nodes ▪ Consistent high performance that supports millions of concurrent users ▪ Flexible JSON data model ▪ 24x365 always-on availability Couchbase Server Database Server
  • 10. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 10 Downloading Couchbase Server • Download Couchbase Server Online • couchbase.com/downloads
  • 11. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 11 Installing Couchbase Server
  • 12. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. DEMO
  • 13. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 13 Technologies
  • 14. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 14 Project
  • 15. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 15 docker-compose.yaml ./docker-compose.yaml ./docker-compose.yaml
  • 16. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 16 docker-compose.yaml ./docker-compose.yaml ./docker-compose.yaml
  • 17. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 17 nginx.conf ./.docker/nginx.conf ./.docker/nginx.conf
  • 18. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 18 Dockerfile ./backend/Dockerfile ./frontend/Dockerfile
  • 19. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 19 Makefile ./backend/Makefile ./backend/Makefile
  • 20. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 20 Running the Environment
  • 21. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 21 Koa - Demo ./backend/app/server.js
  • 22. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 22 Couchbase Document
  • 23. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 23 Koa - Connecting to Couchbase ./backend/app/db.js ./backend/app/server.js
  • 24. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 24 Koa - API Setup ./backend/app/server.js ./backend/app/router.js
  • 25. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 25 Koa - API Setup ./backend/app/router.js ./backend/app/router.js
  • 26. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 26 What is N1QL? • Non-first (N1) Normal Form Query Language (QL) • It is based on ANSI 92 SQL • Its query engine is optimized for modern, highly parallel multi-core execution • SQL-like Query Language • Expressive, familiar, and feature-rich language for querying, transforming, and manipulating JSON data • N1QL extends SQL to handle data that is: • Nested: Contains nested objects, arrays • Heterogeneous: Schema-optional, non-uniform • Distributed: Partitioned across a cluster Flexibility of JSON Power of SQL
  • 27. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 27 Koa - API Setup ./backend/app/router.js ./backend/app/router.js./backend/app/router.js
  • 28. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 28 Koa - API Setup ./backend/app/router.js ./backend/app/router.js
  • 29. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 29 Vue ./frontend/src/App.vue ./frontend/src/App.vue ./frontend/src/App.vue
  • 30. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 30 Vue - Methods ./frontend/src/App.vue ./frontend/src/App.vue
  • 31. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 31 Vue - Methods ./frontend/src/App.vue
  • 32. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 32 Running the App
  • 33. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. GIVEAWAY!
  • 34. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. THANK YOU • Repo: git.io/vAqoJ • Couchbase Day CLT: bit.ly/CBDCTL • Couchbase RTP: bit.ly/couchbase-rtp @bentonam / aaron.benton@couchbase.com
  • 35. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved. 35 500+ Digital Businesses Run on Couchbase 6 of the Top 10 E-Commerce Companies in the US 6 of the Top 10 US & European Broadcast Companies 6 of the Top 10 Online Casino Gaming Companies The Top 3 Credit Reporting Companies The top 3 GDS Companies 3 of the Top 10 Airlines

Editor's Notes

  1. My Name is Aaron Benton, I work as a Solutions Architect for Couchbase Special Thanks to Tracy Lee and Modern Web for having me I have 20 minutes so lets get started
  2. We’ll spend a little bit of time looking at NoSQL and leveraging Couchbase, but if you’d like to know more come checkout our FREE Couchbase Day in Charlotte on Feb. 27th
  3. If you can’t make it to Charlotte for the day come to New York for 2 full days and hands on workshops Coupons for free access
  4. Trying to define what “Full Stack Development” means is like playing a game of buzzword bingo We’re going to focus on mainly on NoSQL and the Backend, with just a little frontend today
  5. As developers we spend all of our time dealing with and constructing objects. When it comes time to save that object in a relational system, we have to deconstruct it and save it in a form that we did not construct it in, this is what is effectively called the impedance mismatch
  6. We’re going to setup Couchbase Server really quick, and since screen recordings don’t break.
  7. We’ll use Couchbase as our NoSQL Database Node, Koa and Babel for our backend Vue for frontend And we’ll use Nginx to to front both the backend API and Vue
  8. There’s a lot going on here We using nginx as both our web server for our front-end and as a proxy for our nodejs api We’re also using a single Couchbase container, this is a container that I have published that launches a Couchbase instance and auto-configures it for you based on environment variables but you could easily build you own to suit your needs You’ll notice that both Nginx and Couchbase are pulled from DockerHub but we’re building our Nodejs container from a Dockerfile I’ll also point out that we have an nginx.conf and mime.types that are apart of our project, that we’re linking inside of the docker container, as well as our “frontend” directory”
  9. There’s a lot going on here We using nginx as both our web server for our front-end and as a proxy for our nodejs api We’re also using a single Couchbase container, this is a container that I have published that launches a Couchbase instance and auto-configures it for you based on environment variables but you could easily build you own to suit your needs We’ve defined a fully function environment of 4 containers, in about 50 lines of YAML
  10. You can find plenty of documentation and configuration on nginx Basically we’re defining an HTTP server, that has 2 upstream servers, 1 is our backend API and one is our Due App Now we define 2 rules one for /api that goes to our node app and one for the /root that goes to our Vue app
  11. Two of our containers for the frontend (Vue) and backend (API) use their own Dockerfile’s These are straight forward
  12. Here we’re using make instead of embedding these commands inside our package.json scripts block This allows for abstraction and easier management You can still have these scripts but have them point to the specific make command
  13. Here we’re using make instead of embedding these commands inside our package.json scripts block This allows for abstraction and easier management You can still have these scripts but have them point to the specific make command
  14. Let’s create a document in Couchbase manually And now we’ll retrieve it
  15. We import koa-body for parsing JSON body We add simple error / 404 handling shoutout to the marquee tag, notice the very first thing that happens is we await next() Lastly we attach the middleware for koa body and the router Next we define our router and imports
  16. Here we are defining endpoints to to create a person and an address For the document ID we are using a UUID Creating and Retrieving documents is straight forward, but what if we want to retrieve all of the people or all of the addresses? In a relational environment you’d use a SQL query… in Couchbase you can use N1QL which is SQL for JSON
  17. We import koa-body for parsing JSON body We add simple error / 404 handling shoutout to the marquee tag, notice the very first thing that happens is we await next() Lastly we attach the middleware for koa body and the router
  18. Lastly we need to define an endpoint that will allow us to associate an address to a person For this we are going to use the Sub-Document API Think of this an an UPDATE SQL Statement Instead of retrieving an entire document, modifying it on the application and writing the entire back we give Couchbase the instructions on how to update the document Additionally we need endpoints to retrieve an individual person and an address
  19. Now lets look at our Vue app I’m not going to cover the template and bindings you can see that in the repo We’re using axios which is a promised based http client for node and the browser We setup our data for person, address, people and addresses We mount our calls for people and addresses
  20. Next we define our methods for creating a person and an address
  21. Lastly we define a method that allows us to link an address to a person
  22. Lastly we define a method that allows us to link an address to a person