SlideShare a Scribd company logo
Polyglot Persistence & Multi-Model Databases
1
Michael Hackstein
@mchacki
www.arangodb.org
Michael Hackstein
@mchacki
‣ ArangoDB Core Team
‣ Web Frontend
‣ Graph visualisation
‣ Graph features
!
!
‣ Organiser of cologne.js
‣ Master’s Degree

(spec. Databases and

Information Systems)
2
Once upon a time…
‣ Use a SQL-based database
‣ Implement logic to transform your data into table format
‣ Create / Generate complex queries
‣ Implement logic to transform data from table format in required
format
3
4
Shopping-Cart
RecommendationsSales-History Customer
Product-Catalog
An e-commerce system in
Relational World
4
Main Categories of NoSQL DBs
5
Key/Value Store Document Store Graph Database
Source: Andrew Carol
Polyglot Persistence
Key-Value Store
‣ Map value data to unique string keys (identifiers)
‣ Treat data as opaque (data has no schema)
‣ Can implement scaling and partitioning easily due to simplistic
data model
‣ Key-value can be seen as a special case of documents
6
Document Store
‣ Normally based on key-value stores (each document still has a
unique key)
‣ Allow to save documents with logical similarity in “databases”
or “collections”
‣ Treat data records as attribute-structured documents (data is
no more opaque)
‣ Often allow querying and indexing document attributes
7
!
!
!
!
!
!
!
Graph Store
8
Polyglot Persistence
‣ „Use the right tool for the job“
‣ If you have structured data with some differences
‣ Use a document store
‣ If you have relations between entities and want to efficiently
query them
‣ Use a graph database
‣ If you manage the data structure yourself and do not need
complex queries
‣ Use a key-value store
‣ If you have structured data where all objects have equal
attributes
‣ Use a relational database
9
10
Recommendations
Product-CatalogShopping-Cart
Sales-History Customer
KeyValueStore
Single-Model-Databases
10
{
“userID": 239178239,
“productID”: 128623883,
“number": 5,
“price”: 12.20,
}
{
“userID": 239178239,
“productID”: 128623883,
“number": 5,
“price”: 12.20,
}
DocumentStore GraphStore {
“Name": "Smith",
“lastLogin”: “2012-11-01",
“Visits": 121,
“shipping address”: “abc”,
“shipping address”: “def”
}
{
“Name": "Meyer",
“lastLogin”: “2012-11-21",
“Visits": 20,
“shipping address”: “xyz”,
}
DocumentStore
423453453
4328, “shirt”, “L”, 1, 12.99
6378, “sweater”, “M”, 2, 37.95
3245, “sweater”, “blue”, 1, 99.95
3245, “pants”, “32/34”, “black”, 1, 99.95
=>
874365563
5463, “shirt”, “S”, 1, 9.99
6378, “sweater”, “M”, 2, 37.95
3245, “pants”, “32/34”, “black”, 1, 99.95
=>
{
“type“: "pants",
“waist": 32,
“length”: 34,
“color": "blue",
“material”: “cotton"
}
{
“type“: "television",
“diagonal screen size": 46,
“hdmi inputs": 3,
“wall mountable": true,
“built-in digital tuner": true,
“dynamic contrast ratio”: “50,000:1”,
Resolution”: “1920x1080”
}
{
“type": "sweater",
“color": "blue",
“size": “M”,
“material”: “wool”,
“form”: “turtleneck"
}
{
“type": "sweater",
“color": "blue",
“size": “M”,
“material”: “wool”,
“form”: “turtleneck"
}
DocumentStore
Benefits & Costs
11
‣ Native mapping of data into DB
‣ DB optimized
‣ Queries are tailored for your
data format
‣ Focus on writing business logic
‣ Several technologies involved
‣ Experts required for each
‣ Administration effort is huge
‣ Application logic has to
interface with several sources
‣ Data has to be stored
redundantly and has to be kept
in sync
Syncing Requirements
12
Customers Products
Recommendations
Sales-History
ExtractEdges
SuggestonlyAvailableProducts
Filtersuggestions
Find
connected
users
Buyers Purchases
‣ Problem: Different Data-Formats
‣ On small systems: One database could be sufficient
Multi Model Database
13
‣ Can store several kinds of data models:
‣ Acts as a key-value store
‣ Acts as a document store
‣ Stores graphs natively
‣ Delivers query mechanisms for all data models
14
‣ a multi-model database (document store & graph database)
‣ is open source and free (Apache 2 license)
‣ offers convenient queries (via HTTP/REST and AQL)
‣ offers high performance and is memory efficient
‣ uses JavaScript throughout (V8 built into server)
‣ doubles as a web and application server (Foxx)
‣ offers many drivers for a wide range of languages
‣ is easy to use with web frontend and good documentation
‣ enjoys good professional as well as community support
‣ and recently added sharding in Version 2.0.
Different query interfaces
Different scenarios require different access methods:
‣ Query a document by its unique id / key:
GET /_api/document/users/12345
‣ Query by providing an example document:
PUT /_api/simple/by-example
{ "name": "Michael", "age": 26 }
‣ Query via AQL:
FOR user IN users
FILTER user.active == true
RETURN {
name: user.name
}
‣ Graph Traversals
15
Why another query language?
‣ Initially, we implemented a subset of SQL's SELECT
‣ It didn't fit well
‣ UNQL addressed some of the problems
‣ Looked dead
‣ No working implementations
‣ XQuery seemed quite powerful
‣ A bit too complex for simple queries
‣ JSONiq wasn't there when we started
16
Other Document Stores
‣ MongoDB uses JSON/BSON as its “query language”
‣ Limited
‣ Hard to read & write for more complex queries
‣ CouchDB uses Map/Reduces
‣ It‘s not a relational algebra, and therefore hard to generate
‣ Not easy to learn
17
ArangoDB Query Language (AQL)
‣ We came up with AQL mid-2012
‣ Declarative language, loosely based on the syntax of XQuery
‣ Other keywords than SQL so it's clear that the languages are
different
‣ Implemented in C and JavaScript
18
Extendable through JS
‣ Dynamic Language that enriches ArangoDB
‣ Multi Collection Transactions
‣ Graph Traversals
‣ Cascading deletes/updates
‣ Aggregate data from multiple queries into a single response
‣ Data-intensive operations
‣ Actions, Foxx, Application Server
19
Application Server / Action Server
‣ ArangoDB can answer arbitrary HTTP requests directly
‣ You can write your own JavaScript functions (“actions”) that
will be executed server-side
‣ Includes a permission system
‣ Build your own API rapidly using the Foxx framework
!
!
➡ You can use it as a database or as a combined database/
application server
20
21
Product-CatalogShopping-Cart
Sales-History Recommendations Customer
DocumentStore
DocumentStore
DocumentStoreGraphStore
KeyValueStore
Use Case: Multi-Model-Databases
21
Syncing Requirements
22
Customers Products
Recommendations
Sales-History
ExtractEdges
SuggestonlyAvailableProducts
Filtersuggestions
Find
connected
users
Buyers Purchases
‣ Data-format is unified, no transformations
‣ On small systems: (Single Database)
‣ Separate into collections
‣ No redundancy
‣ Gain transaction possibilities
Join our growing community
23
.. working on the geo index, the full text
search and many APIs: Ruby, Python, PHP,
Java, D, ...
Summary
‣ Multi-Model databases simplify database setup
‣ Cross-out transformation of data-formats
!
‣ ArangoDB
‣ Based on web standards: HTTP, REST, JSON
‣ Flexible querying: Documents, Graphs in the same language
‣ Reduce Server <-> Database communication:
‣ Define your own API using Foxx
‣ Execute data-intensive code within the database
‣ You can even use ArangoDB as our application server
24
25
Thank you
!
‣ Further questions?
‣ Follow me on twitter/github: @mchacki
‣ Or write me a mail: mchacki@arangodb.org
25

More Related Content

What's hot (20)

PDF
Query mechanisms for NoSQL databases
ArangoDB Database
 
PDF
Processing large-scale graphs with Google Pregel
Max Neunhöffer
 
PDF
Introduction to ArangoDB (nosql matters Barcelona 2012)
ArangoDB Database
 
PPTX
SQL vs NoSQL
Jacinto Limjap
 
PDF
Introduction to Foxx by our community member Iskandar Soesman @ikandars
ArangoDB Database
 
PDF
Deep Dive on ArangoDB
Max Neunhöffer
 
PDF
ArangoDB
ArangoDB Database
 
PPTX
Mongodb vs mysql
hemal sharma
 
PDF
Performance comparison: Multi-Model vs. MongoDB and Neo4j
ArangoDB Database
 
PPTX
Sql vs. NoSql
Chuong Mai
 
PPTX
Introduction to NoSQL Database
Mohammad Alghanem
 
PDF
NoSQL
Radu Potop
 
PDF
Data persistence using pouchdb and couchdb
Dimgba Kalu
 
PPTX
XAML Data Binding in UWP
Christian Hissibini
 
PPTX
Introduction To MongoDB
ElieHannouch
 
PDF
Practical Use of a NoSQL
IBM Cloud Data Services
 
PPTX
NoSQL
Radu Vunvulea
 
PDF
10 mongo db
Ahmed Elbassel
 
PPTX
Introduction to MongoDB
Stiliyan Kanchev
 
PPTX
CSCi226PPT1
Mahima Verma
 
Query mechanisms for NoSQL databases
ArangoDB Database
 
Processing large-scale graphs with Google Pregel
Max Neunhöffer
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
ArangoDB Database
 
SQL vs NoSQL
Jacinto Limjap
 
Introduction to Foxx by our community member Iskandar Soesman @ikandars
ArangoDB Database
 
Deep Dive on ArangoDB
Max Neunhöffer
 
Mongodb vs mysql
hemal sharma
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
ArangoDB Database
 
Sql vs. NoSql
Chuong Mai
 
Introduction to NoSQL Database
Mohammad Alghanem
 
NoSQL
Radu Potop
 
Data persistence using pouchdb and couchdb
Dimgba Kalu
 
XAML Data Binding in UWP
Christian Hissibini
 
Introduction To MongoDB
ElieHannouch
 
Practical Use of a NoSQL
IBM Cloud Data Services
 
10 mongo db
Ahmed Elbassel
 
Introduction to MongoDB
Stiliyan Kanchev
 
CSCi226PPT1
Mahima Verma
 

Viewers also liked (9)

PDF
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
NoSQLmatters
 
PDF
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
ArangoDB Database
 
PPTX
Base de données graphe et Neo4j
Boris Guarisma
 
PPTX
In-Memory DataBase
Pridhvi Kodamasimham
 
PDF
LAS16-305: Smart City Big Data Visualization on 96Boards
Linaro
 
PPTX
Test Automation for NoSQL Databases
Tobias Trelle
 
PDF
Présentation des bases de données orientées graphes
Koffi Sani
 
PDF
[FRENCH] - Neo4j and Cypher - Remi Delhaye
Rémi Delhaye
 
PDF
201301 - Focus Neo4j
lyonjug
 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
NoSQLmatters
 
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
ArangoDB Database
 
Base de données graphe et Neo4j
Boris Guarisma
 
In-Memory DataBase
Pridhvi Kodamasimham
 
LAS16-305: Smart City Big Data Visualization on 96Boards
Linaro
 
Test Automation for NoSQL Databases
Tobias Trelle
 
Présentation des bases de données orientées graphes
Koffi Sani
 
[FRENCH] - Neo4j and Cypher - Remi Delhaye
Rémi Delhaye
 
201301 - Focus Neo4j
lyonjug
 
Ad

Similar to Multi model-databases (20)

PDF
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
PDF
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Max Klymyshyn
 
PPTX
Big Data with SQL Server
Mark Kromer
 
PDF
Webinar: How native multi model works in ArangoDB
ArangoDB Database
 
PDF
Intro to Exhibit Workshop
Shawn Day
 
PDF
Presenting Your Digital Research
Shawn Day
 
PDF
Cloud Big Data Architectures
Lynn Langit
 
PDF
Handling scale on AWS
David Ilievsky
 
PPTX
Scale By The Bay | 2020 | Gimel
Deepak Chandramouli
 
PDF
Real-time serverless analytics at Shedd – OLX data summit, Mar 2018, Barcelona
Dobo Radichkov
 
PPTX
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
PPTX
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
Shift Conference
 
PPTX
Philly Code Camp 2013 Mark Kromer Big Data with SQL Server
Mark Kromer
 
PDF
Beyond Relational
Lynn Langit
 
PDF
Case Study: Implementing a Data Mesh at NORD/LB
HostedbyConfluent
 
PDF
Lambda Architectures in Practice
C4Media
 
PDF
MySQL Day Paris 2018 - MySQL JSON Document Store
Olivier DASINI
 
PPTX
PSSUG Nov 2012: Big Data with SQL Server
Mark Kromer
 
PPTX
Dataiku Flow and dctc - Berlin Buzzwords
Dataiku
 
PPTX
Big Data in the Real World
Mark Kromer
 
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Max Klymyshyn
 
Big Data with SQL Server
Mark Kromer
 
Webinar: How native multi model works in ArangoDB
ArangoDB Database
 
Intro to Exhibit Workshop
Shawn Day
 
Presenting Your Digital Research
Shawn Day
 
Cloud Big Data Architectures
Lynn Langit
 
Handling scale on AWS
David Ilievsky
 
Scale By The Bay | 2020 | Gimel
Deepak Chandramouli
 
Real-time serverless analytics at Shedd – OLX data summit, Mar 2018, Barcelona
Dobo Radichkov
 
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
Shift Conference
 
Philly Code Camp 2013 Mark Kromer Big Data with SQL Server
Mark Kromer
 
Beyond Relational
Lynn Langit
 
Case Study: Implementing a Data Mesh at NORD/LB
HostedbyConfluent
 
Lambda Architectures in Practice
C4Media
 
MySQL Day Paris 2018 - MySQL JSON Document Store
Olivier DASINI
 
PSSUG Nov 2012: Big Data with SQL Server
Mark Kromer
 
Dataiku Flow and dctc - Berlin Buzzwords
Dataiku
 
Big Data in the Real World
Mark Kromer
 
Ad

Recently uploaded (20)

PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 

Multi model-databases

  • 1. Polyglot Persistence & Multi-Model Databases 1 Michael Hackstein @mchacki www.arangodb.org
  • 2. Michael Hackstein @mchacki ‣ ArangoDB Core Team ‣ Web Frontend ‣ Graph visualisation ‣ Graph features ! ! ‣ Organiser of cologne.js ‣ Master’s Degree
 (spec. Databases and
 Information Systems) 2
  • 3. Once upon a time… ‣ Use a SQL-based database ‣ Implement logic to transform your data into table format ‣ Create / Generate complex queries ‣ Implement logic to transform data from table format in required format 3
  • 5. Main Categories of NoSQL DBs 5 Key/Value Store Document Store Graph Database Source: Andrew Carol Polyglot Persistence
  • 6. Key-Value Store ‣ Map value data to unique string keys (identifiers) ‣ Treat data as opaque (data has no schema) ‣ Can implement scaling and partitioning easily due to simplistic data model ‣ Key-value can be seen as a special case of documents 6
  • 7. Document Store ‣ Normally based on key-value stores (each document still has a unique key) ‣ Allow to save documents with logical similarity in “databases” or “collections” ‣ Treat data records as attribute-structured documents (data is no more opaque) ‣ Often allow querying and indexing document attributes 7
  • 9. Polyglot Persistence ‣ „Use the right tool for the job“ ‣ If you have structured data with some differences ‣ Use a document store ‣ If you have relations between entities and want to efficiently query them ‣ Use a graph database ‣ If you manage the data structure yourself and do not need complex queries ‣ Use a key-value store ‣ If you have structured data where all objects have equal attributes ‣ Use a relational database 9
  • 10. 10 Recommendations Product-CatalogShopping-Cart Sales-History Customer KeyValueStore Single-Model-Databases 10 { “userID": 239178239, “productID”: 128623883, “number": 5, “price”: 12.20, } { “userID": 239178239, “productID”: 128623883, “number": 5, “price”: 12.20, } DocumentStore GraphStore { “Name": "Smith", “lastLogin”: “2012-11-01", “Visits": 121, “shipping address”: “abc”, “shipping address”: “def” } { “Name": "Meyer", “lastLogin”: “2012-11-21", “Visits": 20, “shipping address”: “xyz”, } DocumentStore 423453453 4328, “shirt”, “L”, 1, 12.99 6378, “sweater”, “M”, 2, 37.95 3245, “sweater”, “blue”, 1, 99.95 3245, “pants”, “32/34”, “black”, 1, 99.95 => 874365563 5463, “shirt”, “S”, 1, 9.99 6378, “sweater”, “M”, 2, 37.95 3245, “pants”, “32/34”, “black”, 1, 99.95 => { “type“: "pants", “waist": 32, “length”: 34, “color": "blue", “material”: “cotton" } { “type“: "television", “diagonal screen size": 46, “hdmi inputs": 3, “wall mountable": true, “built-in digital tuner": true, “dynamic contrast ratio”: “50,000:1”, Resolution”: “1920x1080” } { “type": "sweater", “color": "blue", “size": “M”, “material”: “wool”, “form”: “turtleneck" } { “type": "sweater", “color": "blue", “size": “M”, “material”: “wool”, “form”: “turtleneck" } DocumentStore
  • 11. Benefits & Costs 11 ‣ Native mapping of data into DB ‣ DB optimized ‣ Queries are tailored for your data format ‣ Focus on writing business logic ‣ Several technologies involved ‣ Experts required for each ‣ Administration effort is huge ‣ Application logic has to interface with several sources ‣ Data has to be stored redundantly and has to be kept in sync
  • 13. Multi Model Database 13 ‣ Can store several kinds of data models: ‣ Acts as a key-value store ‣ Acts as a document store ‣ Stores graphs natively ‣ Delivers query mechanisms for all data models
  • 14. 14 ‣ a multi-model database (document store & graph database) ‣ is open source and free (Apache 2 license) ‣ offers convenient queries (via HTTP/REST and AQL) ‣ offers high performance and is memory efficient ‣ uses JavaScript throughout (V8 built into server) ‣ doubles as a web and application server (Foxx) ‣ offers many drivers for a wide range of languages ‣ is easy to use with web frontend and good documentation ‣ enjoys good professional as well as community support ‣ and recently added sharding in Version 2.0.
  • 15. Different query interfaces Different scenarios require different access methods: ‣ Query a document by its unique id / key: GET /_api/document/users/12345 ‣ Query by providing an example document: PUT /_api/simple/by-example { "name": "Michael", "age": 26 } ‣ Query via AQL: FOR user IN users FILTER user.active == true RETURN { name: user.name } ‣ Graph Traversals 15
  • 16. Why another query language? ‣ Initially, we implemented a subset of SQL's SELECT ‣ It didn't fit well ‣ UNQL addressed some of the problems ‣ Looked dead ‣ No working implementations ‣ XQuery seemed quite powerful ‣ A bit too complex for simple queries ‣ JSONiq wasn't there when we started 16
  • 17. Other Document Stores ‣ MongoDB uses JSON/BSON as its “query language” ‣ Limited ‣ Hard to read & write for more complex queries ‣ CouchDB uses Map/Reduces ‣ It‘s not a relational algebra, and therefore hard to generate ‣ Not easy to learn 17
  • 18. ArangoDB Query Language (AQL) ‣ We came up with AQL mid-2012 ‣ Declarative language, loosely based on the syntax of XQuery ‣ Other keywords than SQL so it's clear that the languages are different ‣ Implemented in C and JavaScript 18
  • 19. Extendable through JS ‣ Dynamic Language that enriches ArangoDB ‣ Multi Collection Transactions ‣ Graph Traversals ‣ Cascading deletes/updates ‣ Aggregate data from multiple queries into a single response ‣ Data-intensive operations ‣ Actions, Foxx, Application Server 19
  • 20. Application Server / Action Server ‣ ArangoDB can answer arbitrary HTTP requests directly ‣ You can write your own JavaScript functions (“actions”) that will be executed server-side ‣ Includes a permission system ‣ Build your own API rapidly using the Foxx framework ! ! ➡ You can use it as a database or as a combined database/ application server 20
  • 22. Syncing Requirements 22 Customers Products Recommendations Sales-History ExtractEdges SuggestonlyAvailableProducts Filtersuggestions Find connected users Buyers Purchases ‣ Data-format is unified, no transformations ‣ On small systems: (Single Database) ‣ Separate into collections ‣ No redundancy ‣ Gain transaction possibilities
  • 23. Join our growing community 23 .. working on the geo index, the full text search and many APIs: Ruby, Python, PHP, Java, D, ...
  • 24. Summary ‣ Multi-Model databases simplify database setup ‣ Cross-out transformation of data-formats ! ‣ ArangoDB ‣ Based on web standards: HTTP, REST, JSON ‣ Flexible querying: Documents, Graphs in the same language ‣ Reduce Server <-> Database communication: ‣ Define your own API using Foxx ‣ Execute data-intensive code within the database ‣ You can even use ArangoDB as our application server 24
  • 25. 25 Thank you ! ‣ Further questions? ‣ Follow me on twitter/github: @mchacki ‣ Or write me a mail: [email protected] 25