SlideShare a Scribd company logo
Extensible Database APIs and
their role in Software
Architecture
Max Neunhöffer
Education Tech + Cold Beer (SF) 4 March 2015
www.arangodb.com
Typical structure of an application
Database ←→ App Server ←→ Browser
←→ Mobile App
(keeps state) (is stateless) (on user’s machine)
Communications flow:
data −→ create view −→ display view
persist ←− react ←− user action
complex queries
different views for different frontends
want to scale DB and app server separately
1
Agile development
Facts of life as a software developer/architect
Software grows, we release frequently and quickly, give
rapid feedback, one learns as one goes.
In the beginning . . .
the data schema is unclear
the scope of the app is unclear
the list of front end devices is unclear
protocols are not yet sorted out
performance bottlenecks are unknown
security requirements and problems are unclear
All these are good things!
2
Microservices
These days, everybody talks about microservices:
http://martinfowler.com/articles/microservices.html
Features of a microservice architecture
It is a “particular way of designing software app-
lications as suites of independently deployable
services.”
We cut the application into services,
built around business capabilities. They are
independently deployable (fully automatically!)
have well-defined interfaces (often via REST/HTTP),
and typically run in their own process.
3
Initial phase: hack away, rapid prototyping
Features:
focused on quick results
the database schema keeps changing
performance does not really matter
no security
the user interface undergoes many changes
often just a single target frontend
4
Consolidation phase
Features:
home in on protocols, stabilize them
schema stabilizes
maybe more devices and different front-ends
user interface is understood better
start to think about security
observe first performance problems
add unit tests
5
Polishing phase
Features:
quality becomes more important
security as well
we know, which front-ends must be supported
the protocols are fixed and documented
the schema is fixed, we want to enforce it
performance matters
6
The role of the Database
early late
schema:
flexible, quick results enforcement
protocol:
use standard API use specialized services
authorization:
does not matter matters greatly (want to be flexible)
security:
does not matter matters greatly (want to be hardened)
performance:
does not matter mission critical
(no real example data) (have a lot of data)
Conclusion: DB needs to change!
7
WANTED: (better alive than dead)
a smart database
that can be adapted over time
whose API is extensible
can run performance critical complex queries in the DB,
expose them as data-centric microservices via REST
has configurable consistency
has configurable security features
8
is a multi-model database (document store & graph database),
is open source and free (Apache 2 license),
offers convenient queries (via HTTP/REST and AQL),
including joins between different collections,
configurable consistency guarantees using transactions
is memory efficient by shape detection,
uses JavaScript throughout (Google’s V8 built into server),
API extensible by JS code in the Foxx Microservice Framework,
offers many drivers for a wide range of languages,
is easy to use with web front end and good documentation,
and enjoys good community as well as professional support.
9
Extensible through JavaScript and Foxx
The HTTP API of ArangoDB
can be extended by user-defined JavaScript code,
that is executed in the DB server for high performance.
This is formalised by the Foxx microservice framework,
which allows to implement complex, user-defined APIs with
direct access to the DB engine.
Very flexible and secure authentication schemes can be
implemented conveniently by the user in JavaScript.
Because JavaScript runs everywhere (in the DB server as well
as in the browser), one can use the same libraries in the
back-end and in the front-end.
=⇒ can implement your own data-centric microservices
10
Links
https://www.arangodb.com
http://guesser.9hoeffer.de:8000
https://github.com/ArangoDB/guesser
11

More Related Content

PDF
Multi model-databases
ArangoDB Database
 
PDF
Backbone using Extensible Database APIs over HTTP
Max Neunhöffer
 
PDF
Query mechanisms for NoSQL databases
ArangoDB Database
 
PDF
Overhauling a database engine in 2 months
Max Neunhöffer
 
PDF
Multi-model databases and node.js
Max Neunhöffer
 
PDF
Processing large-scale graphs with Google Pregel
Max Neunhöffer
 
PDF
FOXX - a Javascript application framework on top of ArangoDB
ArangoDB Database
 
PDF
Jan Steemann: Modelling data in a schema free world (Talk held at Froscon, 2...
ArangoDB Database
 
Multi model-databases
ArangoDB Database
 
Backbone using Extensible Database APIs over HTTP
Max Neunhöffer
 
Query mechanisms for NoSQL databases
ArangoDB Database
 
Overhauling a database engine in 2 months
Max Neunhöffer
 
Multi-model databases and node.js
Max Neunhöffer
 
Processing large-scale graphs with Google Pregel
Max Neunhöffer
 
FOXX - a Javascript application framework on top of ArangoDB
ArangoDB Database
 
Jan Steemann: Modelling data in a schema free world (Talk held at Froscon, 2...
ArangoDB Database
 

What's hot (20)

PDF
Introduction to ArangoDB (nosql matters Barcelona 2012)
ArangoDB Database
 
PDF
guacamole: an Object Document Mapper for ArangoDB
Max Neunhöffer
 
PDF
Deep Dive on ArangoDB
Max Neunhöffer
 
PDF
Query Languages for Document Stores
InteractiveCologne
 
PDF
Multi model-databases
Michael Hackstein
 
PDF
01 nosql and multi model database
Mahdi Atawneh
 
PPTX
CouchDB
Jacob Diamond
 
PPTX
NoSQL and MapReduce
J Singh
 
PPT
5 Data Modeling for NoSQL 1/2
Fabio Fumarola
 
PDF
Apache CouchDB
Trinh Phuc Tho
 
PPTX
The CIOs Guide to NoSQL
DATAVERSITY
 
PDF
Visualize your graph database
Michael Hackstein
 
PPTX
Couch db
amini gazar
 
PDF
Introduction to NoSQL
Dimitar Danailov
 
PPTX
NOSQL vs SQL
Mohammed Fazuluddin
 
PPT
Couch db
Rashmi Agale
 
PDF
CouchDB
Rashmi Agale
 
PPTX
Introduction à DocumentDB
MSDEVMTL
 
PPT
Mysql
guest817344
 
PDF
SQL vs NoSQL, an experiment with MongoDB
Marco Segato
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
ArangoDB Database
 
guacamole: an Object Document Mapper for ArangoDB
Max Neunhöffer
 
Deep Dive on ArangoDB
Max Neunhöffer
 
Query Languages for Document Stores
InteractiveCologne
 
Multi model-databases
Michael Hackstein
 
01 nosql and multi model database
Mahdi Atawneh
 
CouchDB
Jacob Diamond
 
NoSQL and MapReduce
J Singh
 
5 Data Modeling for NoSQL 1/2
Fabio Fumarola
 
Apache CouchDB
Trinh Phuc Tho
 
The CIOs Guide to NoSQL
DATAVERSITY
 
Visualize your graph database
Michael Hackstein
 
Couch db
amini gazar
 
Introduction to NoSQL
Dimitar Danailov
 
NOSQL vs SQL
Mohammed Fazuluddin
 
Couch db
Rashmi Agale
 
CouchDB
Rashmi Agale
 
Introduction à DocumentDB
MSDEVMTL
 
SQL vs NoSQL, an experiment with MongoDB
Marco Segato
 
Ad

Similar to Extensible Database APIs and their role in Software Architecture (20)

PDF
Oslo bekk2014
Max Neunhöffer
 
PDF
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
PDF
Oslo baksia2014
Max Neunhöffer
 
PDF
Deep dive into the native multi model database ArangoDB
ArangoDB Database
 
PDF
Is multi-model the future of NoSQL?
Max Neunhöffer
 
KEY
Moving from Relational to Document Store
Graham Tackley
 
PDF
ArangoDB
ArangoDB Database
 
PDF
A Brief Introduction: MongoDB
DATAVERSITY
 
PDF
Mongodb Introduction
Jeremy Taylor
 
PPT
Wmware NoSQL
Murat Çakal
 
PDF
Architecture by Accident
Gleicon Moraes
 
PPTX
An Introduction to Big Data, NoSQL and MongoDB
William LaForest
 
PDF
Semi Formal Model for Document Oriented Databases
Daniel Coupal
 
KEY
What ya gonna do?
CQD
 
PDF
Introduction to Foxx by our community member Iskandar Soesman @ikandars
ArangoDB Database
 
PPTX
Best 15 Databases for Web Applications in 2025
ProQuantic Software
 
PPTX
An Enterprise Architect's View of MongoDB
MongoDB
 
PPTX
Enterprise architectsview 2015-apr
MongoDB
 
PDF
10gen telco white_paper
El Taller Web
 
PDF
Microservice-based software architecture
ArangoDB Database
 
Oslo bekk2014
Max Neunhöffer
 
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
Oslo baksia2014
Max Neunhöffer
 
Deep dive into the native multi model database ArangoDB
ArangoDB Database
 
Is multi-model the future of NoSQL?
Max Neunhöffer
 
Moving from Relational to Document Store
Graham Tackley
 
A Brief Introduction: MongoDB
DATAVERSITY
 
Mongodb Introduction
Jeremy Taylor
 
Wmware NoSQL
Murat Çakal
 
Architecture by Accident
Gleicon Moraes
 
An Introduction to Big Data, NoSQL and MongoDB
William LaForest
 
Semi Formal Model for Document Oriented Databases
Daniel Coupal
 
What ya gonna do?
CQD
 
Introduction to Foxx by our community member Iskandar Soesman @ikandars
ArangoDB Database
 
Best 15 Databases for Web Applications in 2025
ProQuantic Software
 
An Enterprise Architect's View of MongoDB
MongoDB
 
Enterprise architectsview 2015-apr
MongoDB
 
10gen telco white_paper
El Taller Web
 
Microservice-based software architecture
ArangoDB Database
 
Ad

Recently uploaded (20)

PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
The Future of Artificial Intelligence (AI)
Mukul
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Doc9.....................................
SofiaCollazos
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 

Extensible Database APIs and their role in Software Architecture

  • 1. Extensible Database APIs and their role in Software Architecture Max Neunhöffer Education Tech + Cold Beer (SF) 4 March 2015 www.arangodb.com
  • 2. Typical structure of an application Database ←→ App Server ←→ Browser ←→ Mobile App (keeps state) (is stateless) (on user’s machine) Communications flow: data −→ create view −→ display view persist ←− react ←− user action complex queries different views for different frontends want to scale DB and app server separately 1
  • 3. Agile development Facts of life as a software developer/architect Software grows, we release frequently and quickly, give rapid feedback, one learns as one goes. In the beginning . . . the data schema is unclear the scope of the app is unclear the list of front end devices is unclear protocols are not yet sorted out performance bottlenecks are unknown security requirements and problems are unclear All these are good things! 2
  • 4. Microservices These days, everybody talks about microservices: http://martinfowler.com/articles/microservices.html Features of a microservice architecture It is a “particular way of designing software app- lications as suites of independently deployable services.” We cut the application into services, built around business capabilities. They are independently deployable (fully automatically!) have well-defined interfaces (often via REST/HTTP), and typically run in their own process. 3
  • 5. Initial phase: hack away, rapid prototyping Features: focused on quick results the database schema keeps changing performance does not really matter no security the user interface undergoes many changes often just a single target frontend 4
  • 6. Consolidation phase Features: home in on protocols, stabilize them schema stabilizes maybe more devices and different front-ends user interface is understood better start to think about security observe first performance problems add unit tests 5
  • 7. Polishing phase Features: quality becomes more important security as well we know, which front-ends must be supported the protocols are fixed and documented the schema is fixed, we want to enforce it performance matters 6
  • 8. The role of the Database early late schema: flexible, quick results enforcement protocol: use standard API use specialized services authorization: does not matter matters greatly (want to be flexible) security: does not matter matters greatly (want to be hardened) performance: does not matter mission critical (no real example data) (have a lot of data) Conclusion: DB needs to change! 7
  • 9. WANTED: (better alive than dead) a smart database that can be adapted over time whose API is extensible can run performance critical complex queries in the DB, expose them as data-centric microservices via REST has configurable consistency has configurable security features 8
  • 10. is a multi-model database (document store & graph database), is open source and free (Apache 2 license), offers convenient queries (via HTTP/REST and AQL), including joins between different collections, configurable consistency guarantees using transactions is memory efficient by shape detection, uses JavaScript throughout (Google’s V8 built into server), API extensible by JS code in the Foxx Microservice Framework, offers many drivers for a wide range of languages, is easy to use with web front end and good documentation, and enjoys good community as well as professional support. 9
  • 11. Extensible through JavaScript and Foxx The HTTP API of ArangoDB can be extended by user-defined JavaScript code, that is executed in the DB server for high performance. This is formalised by the Foxx microservice framework, which allows to implement complex, user-defined APIs with direct access to the DB engine. Very flexible and secure authentication schemes can be implemented conveniently by the user in JavaScript. Because JavaScript runs everywhere (in the DB server as well as in the browser), one can use the same libraries in the back-end and in the front-end. =⇒ can implement your own data-centric microservices 10