What is different about this generation of web applications? A solid development approach must consider latency, throughput, and interactivity demanded by users users across mobile devices, web browsers, and IoT. These applications often use NoSQL to support a flexible data model and easy scalability required for modern development.
A full stack application (composed of Couchbase, WebAPI, Angular2, and ASP.NET/ASP.NET Core) will be demonstrated in this session. The individual parts of a stack may vary, but the overall design is the focus.
Java Server Pages (JSP) allow embedding Java code within HTML pages to create dynamic web content. JSP pages are compiled to servlets at runtime to generate the response. Key components of JSP include scripting elements to add Java code, implicit objects to access HTTP session and request attributes, directives to configure page properties, and actions to include pages and forward requests. JSP provides a simplified model to create servlets without having to extend base classes or write HTTP specific code.
Automated release management with team city & octopusdeploy - NDC 2013Kristoffer Deinoff
The document discusses automated release management and continuous delivery using TeamCity and Octopus Deploy. It provides steps to configure a build pipeline in TeamCity that packages a .NET project into a NuGet package. The NuGet package is then deployed to various environments in Octopus Deploy using steps like publishing a website, running smoke tests, and verifying changes in user acceptance testing. It also discusses writing PowerShell scripts to automate packaging, publishing, and deployment tasks. Connecting an issue tracker to provide release notes from pending issues is also covered.
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...Codemotion
The document discusses RESTful web services and the Eve framework for building them. It provides an overview of key Eve features like setting up a basic API, connecting to MongoDB, adding validation rules, embedding resources, pagination, filtering, sorting, rate limiting, file storage, and ensuring data integrity. The presentation also covers more advanced topics such as geo-spatial support, authentication, and using Eve with other data stores like SQL and Elasticsearch.
Web pages can get very complex and slow. In this talk, I share how we solve some of these problems at LinkedIn by leveraging composition and streaming in the Play Framework. This was my keynote for Ping Conference 2014 ( http://www.ping-conf.com/ ): the video is on ustream ( http://www.ustream.tv/recorded/42801129 ) and the sample code is on github ( https://github.com/brikis98/ping-play ).
HTML5 is all the rage with the cool kids, and although there's a lot of focus on the new language, there's lots of interesting new JavaScript APIs both in the HTML5 spec and separated out. This presentation will take you through demos and code behind the new JavaScript APIs, and explore where these features can be used
Play 2.0 is a web framework for Java and Scala that is designed to be productive, asynchronous, and reactive. Some key features include being full stack, high-productive, asynchronous and reactive, stateless, HTTP-centric, typesafe, scalable, and open source. Play 2.0 aims to be fun and fast to develop with by enabling features like hot code reloading, browser error reporting, and easy deployment to platforms like Heroku. It also focuses on being asynchronous and reactive through support for WebSockets, Comet, HTTP streaming responses, and composable streams.
Take a look at what Rails 5 has in store for you. We go through all the new features and improvements across development, testing, caching and much more. So let's dive in.
Rest.li is an open source REST framework that uses asynchronous and non-blocking I/O to build scalable REST architectures. It achieves asynchronous behavior through its components R2 (network communication), D2 (dynamic discovery and load balancing), and by not blocking on I/O. Rest.li provides both callback-based and ParSeq-based approaches for building asynchronous Rest.li servers and clients to avoid blocking and improve throughput. ParSeq allows expressing complex asynchronous workflows through tasks and promises.
Effiziente Datenpersistierung mit JPA 2.1 und HibernateThorben Janssen
This document discusses techniques for improving data persistence performance using JPA 2.1 and Hibernate. It covers analyzing performance issues, optimizing queries, caching, and entity fetching strategies. Specific techniques include using Hibernate statistics, native queries, fetch joins, named entity graphs, and the first- and second-level caches. The goal is to recognize and address performance problems early using Hibernate's features.
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...mfrancis
This document discusses using OSGi and Spring Data to develop simple web applications. It describes using Bndtools for OSGi application development and the enRoute project for getting started with OSGi. It provides an overview of using JPA and Spring Data with OSGi for the persistence layer. It also covers integrating Handlebars templates, Jersey MVC, and AngularJS for the web layer. Testing strategies using Spock and integration tests are presented. The technologies discussed include OSGi, Equinox, Felix, JPA, Spring Data, Jersey, Handlebars, and AngularJS.
This document discusses iOS application architecture and REST client implementation. It covers common iOS concepts like MVC, UIKit, table views and their data sources. It also describes a Comet architecture using a REST API and database to retrieve and display product data in a table. The controller implements the table view data source and delegate methods to display the data and handle user interactions like tapping rows.
This document discusses using Scala for full stack development, with Scala in both the backend and frontend. It provides an overview of using Scala and Scala.js for backend and frontend development, including architectures, frameworks, and techniques. The backend is built with Scala and Spring Boot, using techniques like dependency injection and immutable data structures. The frontend is built with Scala.js and React for the UI, using Flux architecture and immutable data. It also discusses mobile development with Scala and React Native.
Play Framework and Ruby on Rails are web application frameworks that help developers build web applications. Both frameworks provide tools and libraries for common tasks like routing, database access, templates and more. Some key similarities include using MVC patterns, supporting SQL/NoSQL databases via libraries, and including tools for unit testing and deployment. Some differences are Play uses Scala and Java while Rails uses Ruby, and they have different project structures and ways of handling assets, templates and dependencies. Both aim to help developers build web applications faster with their features and ecosystem of supporting libraries.
Stratalux Cloud Formation and Chef Integration PresentationJeremy Przygode
The document provides an overview of Stratalux's cloud-based managed services and infrastructure as code approach using Chef. Key points include:
- Stratalux builds highly scalable and available websites in the public cloud.
- Infrastructure is defined as code using Chef for consistent builds, configurations, backups and reduced costs.
- Chef is used to define infrastructure including cookbooks, roles, environments and nodes.
- CloudFormation templates are used to define the needed AWS resources like IAM roles, security groups, auto scaling groups.
- Templates specify parameters, mappings and resources to deploy the application servers configured via Chef.
This document discusses diagnosing issues in cloud applications hosted on Microsoft Azure. It covers the types of diagnostic data that can be monitored on Azure, including performance counters, logs, and event logs. It provides guidance on using the Azure Diagnostics agent to configure which diagnostic data is collected and transferred to storage. Both imperative and declarative configuration methods are demonstrated. Real-world troubleshooting steps and examples are also presented.
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
The document discusses backend-as-a-service (BaaS) platforms like Parse.com that allow developers to harness cloud computing power without having to manage complex backend infrastructure. It explains how BaaS handles scalability, maintenance, failures and other issues automatically. The document also provides examples of common tasks that can be done using a BaaS like Parse.com, such as user login/authentication, database operations, file storage and retrieval.
Programming Azure Active Directory (DevLink 2014)Michael Collier
This document provides an overview of Azure Active Directory (Azure AD) and how to use the Azure AD Graph API. It discusses how Azure AD extends an on-premises Active Directory to the cloud for authentication and identity management. It also summarizes how to register an application with Azure AD, obtain authentication tokens, and perform CRUD operations on directory objects like users and groups via the Graph API using libraries, REST calls, and samples.
This document summarizes an upcoming talk about changes in Rails 3. It notes that Rails 3 release candidate 1 will soon be released, following beta 4. It warns that upgrading apps to Rails 3 may not be straightforward. The talk will cover unobtrusive JavaScript, ActiveModel which decouples models, ActiveRelation for database queries, and Bundler for managing gem dependencies.
This document discusses creating REST APIs with Express, Node.js, and MySQL. It provides an overview of Express and its advantages. It then demonstrates how to set up a Node.js and MySQL environment, create an Express server, and implement API routes to GET, POST, DELETE, and PUT data from a MySQL database table. Code examples are provided to retrieve all todos, a single todo by ID, search todos by keyword, add a new todo, delete a todo, and update an existing todo.
API Days Paris - Automatic Testing of (RESTful) API DocumentationRouven Weßling
This document discusses automatically testing RESTful API documentation by:
1) Describing API Blueprint, a language for describing web API specifications that can be tested.
2) Introducing Dredd, a tool for testing API documentation against a live API.
3) Providing examples of using Dredd hooks to mutate data, add delays, and make assertions during testing.
The document provides an overview of Node.js, a JavaScript runtime environment for building scalable network applications. Some key points covered include:
- Node.js is built on Google's V8 JavaScript engine and is event-driven and non-blocking.
- It is well-suited for data-intensive real-time applications due to its lightweight and efficient nature.
- Node.js differs from other scripting languages by being non-blocking, single-threaded, and having an event-based approach built-in.
This document provides an introduction and overview of a Node.js tutorial presented by Tom Hughes-Croucher. The tutorial covers topics such as building scalable server-side code with JavaScript using Node.js, debugging Node.js applications, using frameworks like Express.js, and best practices for deploying Node.js applications in production environments. The tutorial includes exercises for hands-on learning and demonstrates tools and techniques like Socket.io, clustering, error handling and using Redis with Node.js applications.
Quick and Easy Development with Node.js and Couchbase ServerNic Raboy
Build an API driven Node.js application that uses Couchbase for its NoSQL database and AngularJS for its front-end. Presented by Nic Raboy, Developer Advocate at Couchbase.
API Days Australia - Automatic Testing of (RESTful) API DocumentationRouven Weßling
1) The document discusses automatic testing of API documentation using Dredd, a tool that tests API documentation against live endpoints.
2) Dredd allows testing of GET requests and uses hooks to run code before, after, and between tests like adding delays to avoid rate limits.
3) The document recommends basing documentation on a spec, testing that spec, and including tests as part of continuous integration to avoid outdated documentation.
This document discusses using CouchDB on Android applications. It provides instructions on adding CouchDB functionality to an Android project using Couchbase Mobile for Android. It also describes how to access a CouchDB instance from an Android device using Futon and the Couchbase Service. The document contains code examples for creating, reading, updating and deleting CouchDB documents from an Android app.
Nordic APIs - Automatic Testing of (RESTful) API DocumentationRouven Weßling
Learn how to automatically test your API's documentation by using API Blueprints and dredd.
Presented at the Nordic APIs Platform Summit on October 25, 2016
Node.js and MongoDB are a good fit as MongoDB provides a high-fidelity data store for Node.js applications. To get started quickly, use Nave to manage Node.js versions, npm to manage packages, Express as a web framework, Mongoose as an ODM, and EJS for templating. Key steps include setting up Bootstrap, adding authentication with Mongoose-Auth, and defining schemas like a Link schema for data.
This document discusses JavascriptMVC, an alternative Javascript MVC framework to BackboneJS. It provides an overview of JavascriptMVC's features such as MIT licensing, clear documentation, and providing an almost total solution for building web applications. Potential pros include the licensing, documentation, and comprehensive features. Potential cons include it being less well known and having fewer online resources than BackboneJS in Taiwan. Examples of how it handles classes, CSS, data loading/validation, and views are also provided.
This document discusses taking web apps offline by caching user data and assets. It covers using localStorage and IndexedDB to store user data locally in the browser. It also covers using the AppCache manifest to cache static assets so the app works without an internet connection. The document provides examples of storing, retrieving, updating and deleting data from localStorage and IndexedDB. It also demonstrates how to define the files and fallback pages to cache in an AppCache manifest.
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
This document contains information about Ricardo Silva's background and areas of expertise. It includes his degree in Computer Science from ISTEC and MSc in Computation and Medical Instrumentation from ISEP. It also notes that he works as a Software Developer at Shortcut, Lda and maintains a blog and email contact for Node.js topics. The document then covers several JavaScript, Node.js and Websockets topics through examples and explanations in 3 sentences or less each.
Intro to node.js - Ran Mizrahi (27/8/2014)Ran Mizrahi
Node.js is a platform built on Chrome V8 javascript runtime engine for building fast and scalable, non-blocking, real-time and network applications. In this session Ran will introduce node.js and how to develop large code bases using it. He'll cover the following aspects:
• What is node.js?
• Apache vs. Nginx performance (One thread per connection vs. event loop) and what it has to do with node.js.
• Why node was written in Javascript?
• Main tools and frameworks (Express, socket.io, mongoose etc.)
• TDD/BDD with node.js using mocha and Chai.
Ran Mizrahi, Founder of CoCycles, Passionate entrepreneur and software engineer who loves to continuously innovate and deliver meaningful products while having true fun with the right team.
Intro to node.js - Ran Mizrahi (28/8/14)Ran Mizrahi
This document provides an introduction to Node.js, including what it is, how it works, and some common frameworks and tools used with Node.js. Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine that uses an event-driven, non-blocking I/O model to handle requests. It allows for easy development of scalable network applications. The document discusses Node.js' event loop architecture, non-blocking I/O, and provides examples of using Express, Socket.IO, Mongoose and testing with Mocha/Chai.
SOAP Web Services have a well established role in the enterprise, but aside from the many benefits of the WS-* standards, SOAP and XML also carry additional baggage for developers. Consequently, REST Web Services are gaining tremendous popularity within the developer community. This session will begin by comparing and contrasting the basic concepts of both SOAP and REST Web Services. Building on that foundation, Sam Brannen will show attendees how to implement SOAP-based applications using Spring-WS 2.0. He will then demonstrate how to build a similar REST-ful application using Spring MVC 3.0. The session will conclude with an in-depth look at both server-side and client-side development as well as efficient integration testing of Web Services using the Spring Framework.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
The document discusses SharePoint hosted add-ins. It covers topics such as setting up and deploying add-ins to both Office 365 and on-premise SharePoint, working with SharePoint lists and libraries using the JSOM and REST APIs, consuming external data sources, using the Office UI Fabric for styling, and building add-ins with TypeScript and Angular. The speaker is available to answer questions and welcomes feedback on the presentation.
An introduction to Express, the Sinatra-inspired MVC framework for Node.JS. You'll learn how Express manages and processes routes, how to use the Jade template engine, and how to design data models aimed to play nice with Express.
This document provides an overview of Node.js and how to build web applications with it. It discusses asynchronous and synchronous reading and writing of files using the fs module. It also covers creating HTTP servers and clients to handle network requests, as well as using common Node modules like net, os, and path. The document demonstrates building a basic web server with Express to handle GET and POST requests, and routing requests to different handler functions based on the request path and method.
Similar to Full stack development with node and NoSQL - All Things Open - October 2017 (20)
CREAM - That Conference Austin - January 2024.pptxMatthew Groves
Caching can bring speed to the slow systems in your enterprise. In this session, we'll explore how to avoid expensive computations and reduce database (or other systems) load with caching. Considerations include when to cache (cache policy), how to cache, and when/how to evict. This session will also explore and discuss problems and gotchas like cache sizing, eviction mistakes, and where your cache should live. Finally, we'll look at how caching is implemented in the "memory-first" Couchbase architecture.
I just made a change to the database schema, but now the team needs it for my feature to work. How can I keep track of my database changes and communicate them to the rest of the team? Migrations give a structured way to structurally alter your database structure as your application evolves . . . structurally. They also provide a way for everyone on the team: developers, testers, CI admins, DBAs, etc, to apply the latest changes wherever they are needed - with uniformity and low friction. Fluent Migrations for .NET provide a discoverable, human readable API that supports dozens of different databases (including SQL Server, PostgreSQL, Oracle). Topics covered in this session:
* Why you should use migrations
* How to write fluent migrations
* A look behind the scenes of how fluent migrations work
* Drawbacks/downsides to using migrations
* Other migration options for EF and NoSQL (Couchbase)
Ad hoc SQL scripts make you want to flip a desk? Keep your team on the same page with fluent migrations.
(This session will briefly mention EF Migrations, but is not primarily about EF).
Cache Rules Everything Around Me - DevIntersection - December 2022Matthew Groves
Caching can bring speed to the slow systems in your enterprise. In this session, we'll explore how to avoid expensive computations and reduce database (or other systems) load with caching. Considerations include when to cache (cache policy), how to cache, and when/how to evict. This session will also explore and discuss problems and gotchas like cache sizing, eviction mistakes, and where your cache should live. Finally, we'll look at how caching is implemented in the "memory-first" Couchbase architecture.
Presented at DevIntersection 2022 in Las Vegas
Putting the SQL Back in NoSQL - October 2022 - All Things OpenMatthew Groves
Do you like the familiarity of SQL, but need the speed and flexibility of JSON data that NoSQL databases can provide? You don't have to choose anymore. SQL++ is an emerging standard to apply SQL to JSON data. In this session, you'll learn how SQL++ eases the transition to building an application with modern NoSQL technology. The basics of SQL++ and the necessary extensions to working with JSON technology will be covered. Finally, you'll learn how to start using a SQL++ implementation in production with Couchbase Capella, a cloud DBaaS with one of the top SQL++ implementations available.
Cache Rules Everything Around Me - Momentum - October 2022.pptxMatthew Groves
Caching can bring speed to the slow systems in your enterprise. In this session, we'll explore how to avoid expensive computations and reduce database (or other systems) load with caching. Considerations include when to cache (cache policy), how to cache, and when/how to evict. This session will also explore and discuss problems and gotchas like cache sizing, eviction mistakes, and where your cache should live. Finally, we'll look at how caching is implemented in the "memory-first" Couchbase architecture.
NoSQL document databases provide unique capabilities of scaling, flexibility, and performance for a wide variety of use cases. However, many developers from relational backgrounds are understandably nervous (for a variety of reasons) about using NoSQL in their next project. This session will address one of those reasons: ACID transactions (or lack thereof). This session will start with some background about why NoSQL databases didn’t (initially) have full ACID capabilities. Next, we’ll look at why lack of ACID may not be a big deal and some of the data modeling and querying techniques to use instead. Finally, we’ll look at the more recent trend of document databases adding distributed multi-document ACID capabilities and show a live demo of a NoSQL transaction. You’ll leave this session with a better understanding of how ACID works and when to use it.
ACID and NoSQL are no longer exclusive. This session explains what ACID is, the reasons why it's difficult for distributed NoSQL, some of the workarounds that are still relevant, and how to use it today.
Demystifying NoSQL - All Things Open - October 2020Matthew Groves
We’ve been using relational databases like SQL Server, Postgres, MySQL, and Oracle for a long time. Tables are practically ingrained into our thought processes. But many organizations and businesses are turning to NoSQL options to solve problems of scale, performance, and flexibility. What is a long-time relational database-using developer supposed to do? Do I just forget about all that SQL that I learned? (Spoiler alert: NO). Come to this session with all your burning questions about data modeling, transactions, schema, migration, how to get started, and more. Let’s find out if a NoSQL tool like Couchbase, CosmosDb, Mongo, etc, is the right fit for your next project.
Autonomous Microservices - Manning - July 2020Matthew Groves
Everybody loves Microservices, but we all know how difficult it is to make it right. Distributed systems are much more complex to develop and maintain, and over time, we even miss the simplicity of old monoliths. In this talk, I propose a combination of infrastructure, architecture, and design principles to make your microservices bulletproof and easy to maintain with a combination of high scalability, elasticity, fault tolerance, and resilience. This session will also include a discussion about some microservices blueprints like asynchronous communications, how to avoid cascading failures in synchronous calls, and why you should use different storages according to the use case: Document Databases to speed up your performance, RDBMS for transactions, Graphs for recommendations, etc.
CONDG April 23 2020 - Baskar Rao - GraphQLMatthew Groves
This document provides an overview of GraphQL, including:
- A brief history of API architectures like REST and how GraphQL compares
- Common problems with REST APIs that GraphQL aims to address
- Key aspects of GraphQL like queries, mutations, subscriptions and its schema-first approach
- Popular GraphQL platforms and clients like Apollo, Hasura and Relay
- A demo of building a GraphQL API
JSON Data Modeling - GDG Indy - April 2020Matthew Groves
Presented virtually at GDG Indy - https://www.meetup.com/indy-gdg/events/269467916/
If you’re thinking about using a document database, it can be intimidating to start. A flexible data model gives you a lot of choices, but which way is the right way? Is a document database even the right tool? In this session we’ll go over the basics of data modeling using JSON. We’ll compare and contrast with traditional RDBMS modeling. Impact on application code will be discussed, as well as some tooling that could be helpful along the way. The examples use the free, open-source Couchbase Server document database, but the principles from this session can also be applied to CosmosDb, Mongo, RavenDb, etc.
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...Matthew Groves
This document discusses background processing tasks without using a separate service. It introduces Hangfire, an open source framework for managing background job processing in .NET and .NET Core applications. The agenda includes an overview of Hangfire, a demonstration of recurring jobs and the Hangfire dashboard, and notes potential issues like exceptions, deployment, and security. Resources are provided for learning more about background tasks, Hangfire, and contacting the presenter.
Intro to SQL++ - Detroit Tech Watch - June 2019Matthew Groves
SQL++ is an extension of SQL that allows users to query JSON documents like they would relational data, gaining the flexibility of NoSQL with the familiarity of SQL. It provides "superpowers" like querying nested objects and arrays within documents, joining data across collections, and aggregating results. Implementations include Couchbase, AsterixDB and Apache Drill, minimizing ETL while maximizing existing SQL skills for analytics on big data.
Autonomous Microservices - CodeMash - January 2019Matthew Groves
Everybody loves microservices, but it's difficult to do it right. Distributed systems are much more complex to develop and maintain. Over time, you may even miss the simplicity of old monoliths. In this session, I propose a combination of infrastructure, architecture, and design principles to bulletproof your microservices and make them easy to maintain with a combination of high scalability, elasticity, fault tolerance, and resilience. This session will include a discussion of microservices blueprints like: asynchronous communications, avoiding cascading failures in synchronous calls, and how distributed NoSQL databases become valuable in terms of scalability and performance when combined with your microservices in a Kubernetes deployment.
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018Matthew Groves
If you are thinking of trying out a NoSQL document database, there are many good options available to Microsoft-oriented developers. In this session, we’ll compare some of the more popular databases, including: CosmosDb, Couchbase, MongoDb, CouchDb, and RavenDb. We’ll look at the strengths and weaknesses of each system. Querying, scaling, usability, speed, deployment, support and flexibility will all be covered. This session will include a discussion about when NoSQL is right for your project and give you an idea of which technology to pursue for your use case.
JSON Data Modeling - July 2018 - Tulsa TechfestMatthew Groves
If you’re thinking about using a document database, it can be intimidating to start. A flexible data model gives you a lot of choices, but which way is the right way? Is a document database even the right tool? In this session we’ll go over the basics of data modeling using JSON. We’ll compare and contrast with traditional RDBMS modeling. Impact on application code will be discussed, as well as some tooling that could be helpful along the way. The examples use the free, open-source Couchbase Server document database, but the principles from this session can also be applied to CosmosDb, Mongo, RavenDb, etc.
If you are thinking of trying out a NoSQL document database, there are many good options available to Microsoft-oriented developers. In this session, we’ll compare some of the more popular databases, including: CosmosDb, Couchbase, MongoDb, CouchDb, and RavenDb. We’ll look at the strengths and weaknesses of each system. Querying, scaling, usability, speed, deployment, support and flexibility will all be covered. This session will include a discussion about when NoSQL is right for your project and give you an idea of which technology to pursue for your use case.
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...Matthew Groves
If you are thinking of trying out a NoSQL document database, there are many good options available to Microsoft-oriented developers. In this session, we’ll compare some of the more popular databases, including: CosmosDb, Couchbase, MongoDb, CouchDb, and RavenDb. We’ll look at the strengths and weaknesses of each system. Querying, scaling, usability, speed, deployment, support and flexibility will all be covered. This session will include a discussion about when NoSQL is right for your project and give you an idea of which technology to pursue for your use case.
My toaster stores data without SQL and without tables. But making a choice based on what something doesn’t have isn’t terribly useful. “NoSQL” is an increasingly inaccurate catch-all term that covers a lot of different types of data storage. Let’s make more sense of this new breed of database management systems and go beyond the buzzword. In this session, the four main data models that make up the NoSQL movement will be covered: key-value, document, columnar and graph. How they differ and when you might want to use each one will be discussed.
This session will be looking at the whole ecosystem, with a more detailed focus on Couchbase, Cassandra, Riak KV, and Neo4j.
Querying NoSQL with SQL - KCDC - August 2017Matthew Groves
Until recently, agile business had to choose between the benefits of JSON-based NoSQL databases and the benefits of SQL-based querying. NoSQL provides schema flexibility, high performance, and elastic scaling, while SQL provides expressive, independent data access. Recent convergence allows developers and organizations to have the best of both worlds.
Developers need to deliver apps that readily evolve, perform, and scale, all to match changing business needs. Organizations need rapid access to their operational data, using standard analytical tools, for insight into their business. In this session, you will learn the ways that SQL can be applied to NoSQL databases (N1QL, SQL++, ODBC, JDBC, and others), and what additional features are needed to deal with JSON documents. SQL for JSON, JSON data modeling, indexing, and tool integration will be covered.
Are you wondering how to migrate to the Cloud? At the ITB session, we addressed the challenge of managing multiple ColdFusion licenses and AWS EC2 instances. Discover how you can consolidate with just one EC2 instance capable of running over 50 apps using CommandBox ColdFusion. This solution supports both ColdFusion flavors and includes cb-websites, a GoLang binary for managing CommandBox websites.
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfTrackobit
What do fleet managers do? What are their duties, responsibilities, and challenges? And what makes a fleet manager effective and successful? This blog answers all these questions.
Explore the rapid development journey of TryBoxLang, completed in just 48 hours. This session delves into the innovative process behind creating TryBoxLang, a platform designed to showcase the capabilities of BoxLang by Ortus Solutions. Discover the challenges, strategies, and outcomes of this accelerated development effort, highlighting how TryBoxLang provides a practical introduction to BoxLang's features and benefits.
What is OCR Technology and How to Extract Text from Any Image for FreeTwisterTools
Discover the fascinating world of Optical Character Recognition (OCR) technology with our comprehensive presentation. Learn how OCR converts various types of documents, such as scanned paper documents, PDFs, or images captured by a digital camera, into editable and searchable data. Dive into the history, modern applications, and future trends of OCR technology. Get step-by-step instructions on how to extract text from any image online for free using a simple tool, along with best practices for OCR image preparation. Ideal for professionals, students, and tech enthusiasts looking to harness the power of OCR.
Overview of ERP - Mechlin Technologies.pptxMitchell Marsh
This PowerPoint presentation provides a comprehensive overview of Enterprise Resource Planning (ERP) systems. It covers the fundamental concepts, benefits, and key functionalities of ERP software, illustrating how it integrates various business processes into a unified system. From finance and HR to supply chain and customer relationship management, ERP facilitates efficient data management and decision-making across organizations. Whether you're new to ERP or looking to deepen your understanding, this presentation offers valuable insights into leveraging ERP for business success.
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...Hironori Washizaki
Hironori Washizaki, "Charting a Course for Equity: Strategies for Overcoming Challenges and Promoting Inclusion in the Metaverse", IEEE COMPSAC 2024 D&I Panel, 2024.
Sami provided a beginner-friendly introduction to Amazon Web Services (AWS), covering essential terms, products, and services for cloud deployment. Participants explored AWS' latest Gen AI offerings, making it accessible for those starting their cloud journey or integrating AI into coding practices.
An MVP (Minimum Viable Product) mobile application is a streamlined version of a mobile app that includes only the core features necessary to address the primary needs of its users. The purpose of an MVP is to validate the app concept with minimal resources, gather user feedback, and identify any areas for improvement before investing in a full-scale development. This approach allows businesses to quickly launch their app, test its market viability, and make data-driven decisions for future enhancements, ensuring a higher likelihood of success and user satisfaction.
React and Next.js are complementary tools in web development. React, a JavaScript library, specializes in building user interfaces with its component-based architecture and efficient state management. Next.js extends React by providing server-side rendering, routing, and other utilities, making it ideal for building SEO-friendly, high-performance web applications.
Break data silos with real-time connectivity using Confluent Cloud Connectorsconfluent
Connectors integrate Apache Kafka® with external data systems, enabling you to move away from a brittle spaghetti architecture to one that is more streamlined, secure, and future-proof. However, if your team still spends multiple dev cycles building and managing connectors using just open source Kafka Connect, it’s time to consider a faster and cost-effective alternative.
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdfonemonitarsoftware
WhatsApp Tracker Software is an effective tool for remotely tracking the target’s WhatsApp activities. It allows users to monitor their loved one’s online behavior to ensure appropriate interactions for responsive device use.
Download this PPTX file and share this information to others.
3. Where am I?
• All Things Open
• Raleigh, North Carolina
• https://allthingsopen.org/
4. Who am I?
• Nic Raboy Matthew D. Groves
• Developer Advocate for Couchbase
• @mgroves on Twitter
• Podcast and blog: https://crosscuttingconcerns.com
• "I am not an expert, but I am an enthusiast."
–Alan Stevens
10. Couchbase: The Complete Database Solution
Lightweight embedded NoSQL database
with full CRUD and query functionality.
Secure web gateway with synchronization,
REST, stream, batch and event APIs for
accessing and synchronizing data over the
web.
Highly scalable, highly available, high
performance NoSQL database server.
Built-in enterprise level security throughout the entire stack includes user authentication, user and role based data access control
(RBAC), secure transport (TLS), and 256-bit AES full database encryption.
Couchbase Lite Sync Gateway Couchbase Server
EMBEDDED DATABASE SYNCHRONIZATION DATABASE SERVER
SECURITY
11. Couchbase Lite Overview
Cross-platform support for all major
operating systems and platforms
Built native from the ground up
500kb for most platforms
256-bit AES full database encryption
11
Couchbase Lite
Embedded Database
12. Sync Gateway Overview
Synchronize data between Couchbase
Lite and Couchbase Server
REST, Stream, Batch, and Event APIs
Pluggable authentication
Fine grained user and role based
access control
Elastically scalable in real-time
12
Sync Gateway
Synchronization
13. 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
13
Couchbase Server
Database Server
14. 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
15. The Couchbase Node.js SDK
• Uses the high performance Couchbase C library
• Compatible with Node.js frameworks
• Express, Sails, Hapi, Etc.
• Minimal coding
• No database maintenance via code
• No parsing queries via application code
16. Building Applications with Node.js SDK
//including the Node.js dependency
var Couchbase = require("couchbase");
//connecting to a Couchbase cluster
var cluster = new Couchbase.Cluster("couchbase://localhost");
//opening a bucket in the cluster
var myBucket = cluster.openBucket("travel-sample");
//preparing N1ql
var myQuery = Couchbase.N1qlQuery();
//creating and saving a Document
var document = {
firstname: "Matt",
lastname: "Groves"
};
myBucket.insert("my-key", document, function (error, result) { });
17. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
18. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
19. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
20. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
21. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
22. Node.js
function query(sql, done) {
var queryToRun = myQuery.fromString(sql);
myBucket.query(queryToRun, function (error, result) {
if (error) {
console.log("ERROR: ", error);
done(error, null);
return;
}
done(null, result);
return;
});
}
25. Node.js Separation of Frontend and Backend
• No Jade markup
• API driven
• Less client and server coupling
• The backend can evolve without affecting the frontend
• Frontend can be extended to web as well as mobile
47. Where do you find us?
• developer.couchbase.com
• blog.couchbase.com
• @couchbase / @couchbasedev / @mgroves
• forums.couchbase.com
• stackoverflow.com/questions/tagged/couchbase
48. Frequently Asked Questions
1. How is Couchbase different than Mongo?
2. Is Couchbase the same thing as CouchDb?
3. How did you get to be both incredibly handsome and
tremendously intelligent?
4. What is the Couchbase licensing situation?
5. Is Couchbase a Managed Cloud Service?
50. MongoDB vs Couchbase
• Architecture
• Memory first architecture
• Master-master architecture
• Auto-sharding
< Back
• Features
• SQL (N1QL)
• FullText Search
• Mobile & Sync
51. Licensing
Couchbase Server Community
• Open source (Apache 2)
• Binary release is one release behind Enterprise
• Free to use in dev/test/qa/prod
• Forum support only
Couchbase Server Enterprise
• Mostly open source (Apache 2)
• Some features not available on Community (XDCRTLS, MDS, Rack Zone, etc)
• Free to use in dev/test/qa
• Need commercial license for prod
• Paid support provided
< Back
52. Managed Cloud Service (DBaaS)?
Short answer: No.
< Back
Longer answer: Kinda. https://zdatainc.com/couchbase-managed-services/
Longest answer: See me after class.
Editor's Notes
What is a full stack?
This is my idea of a full stack.
Some people take issue with the term "full stack" because you aren't programming the literal entire stack.
But what is usually meant is UI to the database. And that's what we're going to cover today.
The need for engineers working in a silo is shrinking
Full stack engineers do a little bit of everything
A stack includes a client facing layer, backend, and database.
Each layer in a stack can extend to multiple components, for example more than one client facing component or more than one database.
No db migrations in code
No proprietary query language, we'll be using SQL
Open source apache license for community edition, enterprise edition on a faster release schedule, some advanced features, and support license.
Couchbase is software you can run in the cloud on a VM or on your own data center. CosmosDb is a manage cloud service, but there is a emulator you can run locally.
Couchbase is the company, Couchbase Server is the software
So imagine if Mongo and Redis companies formed a new company named RedMongo, and a new database combining Redis and Mongo together called RedMongo Server
Memory first: integrated cache, you don't need to put redis on top of couchbase
Master-master: easier scaling, better scaling
Auto-sharding: we call vBuckets, you don't have to come up with a sharding scheme, it's done by crc32
N1QL: SQL, mongo has a more limited query language and it's not SQL-like
Full Text Search: Using the bleve search engine, language aware FTS capabilities built in
Mobile & sync: Mongo has nothing like the offline-first and sync capabilities couchbase offers
Mongo DOES have a DbaaS cloud provider
Everything I've shown you today is available in Community edition
The only N1QL feature I can think of not in Community is INFER
The Enterprise features you probably don't need unless you are Enterprise developer.
Not yet. We've been talking about it at least as long as I've been with Couchbase.
It's partly a technical problem, may need additional features for multi-tenant.
It's partly (mostly) a business problem. Would this be worth it?
Couchbase IS in the Azure and AWS marketplaces, and there are some wizards to make config easy, but it runs on your VMs.