SlideShare a Scribd company logo
1 of 28
Download to read offline
RESTHeart
RESTHeart
REST API for MongoDB
For developers with deadlines
RESTHeart v5
RESTHeart
What is RESTHeart?
RESTHeart is a modern backend for Web and
Mobile apps, designed to
radically simplify server-side development and
deployment.
RESTHeart
Why?
There are fundamental features every application always need to implement:
● Data persistence.
● Access management.
● API.
RESTHeart provides out-of-the-box data persistence, secure authentication and
role-based authorization, and a complete REST API on top of MongoDB.
RESTHeart
Main Features
Data
RESTHeart leverages
MongoDB to provide all
data functionalities
required by modern
applications.
Supports all the features
of MongoDB including
queries, aggregations,
change streams and
transactions.
Security
Authenticate clients via
multiple schemes and
enforce role-based
authorization policies.
Security can be easily
customized to integrate
external providers or
implement fine-grained
security policies.
Java Extension
Framework
Develop Web Services in
minutes or execute
custom behaviours on
different stages of the
request / response
life-cycle.
Deploy custom Java
plugins just copying the
JAR into a folder.
REST API
RESTHeart exposes a complete API that follows the REST paradigm and uses JSON as the representation format.
Proxy
Use RESTHeart as the
Ingress for your
microservices and handle
them under the same
security context.
This makes possible to
use external
microservices, made with
Node.js, Spring Boot, or
AWS Lambda.
RESTHeart
RESTHeart simplifies client-server interaction
● Clients interact with RESTHeart using
plain HTTP requests and JSON.
● RESTful paradigm makes the API clean,
self-describing and easy to use.
● Works seamlessly with SPA frameworks
(Angular, Vue, React, ecc) .
● Other clients (e.g. mobile apps) just
require a HTTP client library.
RESTHeart
Technical Specifications
● Written in Java.
● On top of RedHat’s Undertow non-blocking HTTP server.
● Uses MongoDB and compatible databases for data persistence.
● Fully stateless.
● Can be packaged as a Docker container.
● Can be easily deployed both on Cloud and on premises.
RESTHeart
RESTHeart supports all MongoDB’s features, and more
Read / Write JSON
documents
Binary data with GridFS
Aggregations
Transactions
Data streams
with
WebSockets
Data transformation &
validation
DB Management API
Upload data from CSV files
RESTHeart
Supported databases
RESTHeart is tested and supported with
● MongoDB Community.
● MongoDB Enterprise.
● Percona Server for MongoDB.
● Amazon DocumentDB (*).
● Microsoft Azure Cosmos DB (*).
(*) Both databases are API-compatible with MongoDB v3, but with some specific limitations.
RESTHeart
Example: Query data with JavaScript
const url =
encodeURI('https://beta.mrest.io/demo/messages?filter={
"from":"Bob"});
fetch(url, { headers: {'key':'demo'} })
.then(response => response.json())
.then(json => JSON.stringify(json, null, 2))
.then(data => console.log(data));
HTTP/1.1 200 OK
...
[
{
"_id": {
"$oid":
"5db0067615f384eda89e5fab"
},
"message": "hi there!",
"from": "Bob",
"timestamp": {
"$date": 1571817078280
}
}
]
Run it
RESTHeart
Extension Framework
RESTHeart can be extended via a plugin mechanism.
● Plugins allow to leverage the full power of the Java language.
● Just copy a JAR file into the ./plugins folder
Main plugin categories: Services and Interceptors
● Services are bound to an URI, exchange HTTP requests and responses.
● Interceptors can read or modify requests and responses on the fly.
Examples: https://github.com/SoftInstigate/restheart-examples
RESTHeart
Example: HelloWorld Web Service
@RegisterPlugin(
name = "hello",
description = "a Web service that sends a greetings message with 1
annotation and 2 lines of code",
defaultURI = "/hello")
public class HelloService implements JsonService {
@Override
public void handle(JsonRequest request, JsonResponse response) throws Exception {
response.setStatusCode(200);
response.setContent(new JsonObject("message", "Hello World"));
}
}
$ curl 127.0.0.1:8080/hello
HTTP/1.1 200 OK
{ "message": "Hello World" }
RESTHeart
Real case example
● The project leverages MongoDB,
RESTHeart and Angular.
● It took 215 man-days to go online.
● Only 11 man-days were invested into
back-end development.
● Most of the team focused on UX/UI.
● Project start: mid September 2019
● In production: end of December 2019
backend 5%
frontend 95%
autoinrete.com - B2B and C2B marketplace for used cars.
RESTHeart
Don’t reinvent the “backend wheel”: use RESTHeart!
RESTHeart
Licenses and Support options
RESTHeart
Licenses
RESTHeart is distributed through a dual licensing model:
1. Open Source - under the GNU AGPL v3.0 license.
2. Enterprise - under a business-friendly license.
RESTHeart
RESTHeart Open source
If you are a student, individual developer or a small Web agency and
comfortable with the AGPL v3 license, then using the product as open
source is likely to be your best option.
● Source code: https://github.com/softInstigate/restheart/
● Community support is available on Github and Stackoverflow.
● You can chat on Gitter or join our Facebook community.
RESTHeart
AGPL license - implications
The GNU Affero General Public License version 3 (AGPL v3) is a copyleft license
nearly identical to the GPLv3 https://www.gnu.org/licenses/agpl-3.0.html. As the
AGPL is based on the GPL, not the LGPL, it does not contain linking exceptions, and
any derivative work using AGPL code (linked or otherwise, modified or not) must also
be AGPL licensed and distributed.
● A Software that interacts with RESTHeart via its REST API is not considered as a derivative work, it
just need to use any HTTP client library.
● The RESTHeart Java Extension Framework (restheart-commons) is licensed under the Apache 2.0
License: custom plugins don’t incur in the limitations of the AGPL and can be released with any license,
either open or closed source.
● Any modification of RESTHeart’s core source code must be released as open source, under the terms
of the AGPLv3 license, regardless it is embedded or accessed via a network.
RESTHeart
RESTHeart Subscription
When a company is not comfortable with the AGPL open source
license or need technical support, then it could purchase a
RESTHeart Subscription, which comes with:
● Perpetual, business-friendly Enterprise license.
● 12 months of technical support.
● 12 months of supported upgrades to any new release of the product.
● Training (optional).
● Professional Services (optional).
While the Enterprise license is perpetual, the subscription is annual and has to be explicitly renewed.
RESTHeart
Enterprise license
The Enterprise license is perpetual and overcomes some limitations
of the AGPL v3. Specifically, it grants the following rights:
● Use RESTHeart in closed source applications.
● Distribute RESTHeart embedded in closed source products.
● Get coverage against some legal risks, like third-parties IP claims.
RESTHeart
Subscription’s Levels and Pricing
These depends on specific deployment needs
Subscription Level RESTHeart’s instances (*) Deployment scenario Pricing
Single 1 Single node, no HA requirements. € 6000 / year
Cluster 3 Active/Active HA with up to 3 nodes. € 14000 / year
Unlimited Unlimited, dynamic Elastic clusters, like Kubernetes or ECS. Negotiable
OEM To be estimated Redistribute RESTHeart embedded in closed
source products.
Based on volumes
(*) Only production instances matter: dev, test or other environments are free. We offer volume discounts.
RESTHeart
How many subscriptions do I need to buy?
It’s simple: buy one RESTHeart subscription for each MongoDB
production instance you want to connect to.
So, with one annual subscription you get a license that allows to:
1. Run unlimited RESTHeart instances, connected to any number of
non-production database instances (dev, test, staging, ...).
2. Run RESTHeart connected to one database production instance
at a time.
Subscriptions containing multiple licenses for multiple database instances are available upon request.
RESTHeart
Subscription renewals
At the end of the standard 12 months subscription you can either:
● renew the subscription for another year (or more);
● or let the subscription expire and keep running RESTHeart at the
latest version released during the subscription period.
When the subscription expires (*) you are not supported anymore, but you can keep
running RESTHeart in production, because the Enterprise license is perpetual.
(*) If you decide to renew later, the new subscription period will start retroactively from the date it expired.
RESTHeart
Professional Services
Professional services are optional and an available on demand.
Example of activities:
● Extending RESTHeart with custom plugins.
● Handling security, authentication and authorization.
● Highly available deployments, on cloud and on premises.
● Validation of architectural decisions.
● Integration with other systems.
● Performance tuning and monitoring.
RESTHeart
Training
We offer on demand, remote training sessions to RESTHeart’s customers, for up to 5
participants at a time.
Class name Description Duration Pricing
Introduction Basic RESTHeart elements. 2 hours € 600
Operations
Advanced setup and configuration of
RESTHeart deployments.
4 hours € 1200
Developers
Develop modern Web applications with
RESTHeart and MongoDB.
8 hours € 2400
A basic knowledge of MongoDB can be useful, but it is not a prerequisite for the “Introduction” classroom,
while it’s recommended for the “Operations” and “Developers” classrooms.
RESTHeart
RESTHeart - recap of main differences
Open source Subscription
License type AGPL v3 Enterprise
Technical support
Supported HA clustering
Closed source products
Professional Services
RESTHeart
Open Source vs Commercial Subscription
Subscription
Technical
support
Enterprise
license
Open Source
Professional
services
AGPL v3 license
Closed source
products
Open source
apps only
OEM or Custom
Terms license
Training
RESTHeart
Companies using RESTHeart
RESTHeart
https://restheart.org
For any question: ask@restheart.org
RESTHeart is a division of SoftInstigate
Legal office: SoftInstigate srl - Via G. D'Annunzio 28, 67100 L'Aquila (Italy)
Head office: SoftInstigate srl - Via Copernico 38, 20125 Milano (Italy)
Web: https://www.softinstigate.com | Email: info@softinstigate.com

More Related Content

Similar to RESTHeart - Modern runtime for microservices with instant Data API on MongoDB.

REST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptxREST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptx
Jason452803
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
Eris Ristemena
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep Dive
Greg Hoelzer
 

Similar to RESTHeart - Modern runtime for microservices with instant Data API on MongoDB. (20)

shiv_chandra_pathak
shiv_chandra_pathakshiv_chandra_pathak
shiv_chandra_pathak
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
 
Multiple odoo with single vue storefront
Multiple odoo with single vue storefrontMultiple odoo with single vue storefront
Multiple odoo with single vue storefront
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?
 
KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
 
Anthos Security: modernize your security posture for cloud native applications
Anthos Security: modernize your security posture for cloud native applicationsAnthos Security: modernize your security posture for cloud native applications
Anthos Security: modernize your security posture for cloud native applications
 
AppGate Getting Started Resources for Telarus Partners
AppGate Getting Started Resources for Telarus PartnersAppGate Getting Started Resources for Telarus Partners
AppGate Getting Started Resources for Telarus Partners
 
REST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptxREST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptx
 
Odoo SaaS Kit: Features and Server Specifications
Odoo SaaS Kit: Features and Server SpecificationsOdoo SaaS Kit: Features and Server Specifications
Odoo SaaS Kit: Features and Server Specifications
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
 
206450 primavera gateway
206450 primavera gateway206450 primavera gateway
206450 primavera gateway
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
AtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMSAtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMS
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep Dive
 
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
 
Declarative Clients in Spring
Declarative Clients in SpringDeclarative Clients in Spring
Declarative Clients in Spring
 

More from SoftInstigate

Alfresco Enterprise 3.4 ita
Alfresco Enterprise 3.4 itaAlfresco Enterprise 3.4 ita
Alfresco Enterprise 3.4 ita
SoftInstigate
 

More from SoftInstigate (6)

SoftInstigate - Modelli di ingaggio nello sviluppo software
SoftInstigate - Modelli di ingaggio nello sviluppo softwareSoftInstigate - Modelli di ingaggio nello sviluppo software
SoftInstigate - Modelli di ingaggio nello sviluppo software
 
Autoinrete.com - il marketplace automobilistico accelerato dal cloud.
Autoinrete.com - il marketplace automobilistico accelerato dal cloud.Autoinrete.com - il marketplace automobilistico accelerato dal cloud.
Autoinrete.com - il marketplace automobilistico accelerato dal cloud.
 
Contratti agili per lo sviluppo software
Contratti agili per lo sviluppo softwareContratti agili per lo sviluppo software
Contratti agili per lo sviluppo software
 
Differenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseDifferenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed Enterprise
 
Alfresco Enterprise 3.4 ita
Alfresco Enterprise 3.4 itaAlfresco Enterprise 3.4 ita
Alfresco Enterprise 3.4 ita
 
Alfresco in un ora 2010
Alfresco in un ora 2010Alfresco in un ora 2010
Alfresco in un ora 2010
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

RESTHeart - Modern runtime for microservices with instant Data API on MongoDB.

  • 1. RESTHeart RESTHeart REST API for MongoDB For developers with deadlines RESTHeart v5
  • 2. RESTHeart What is RESTHeart? RESTHeart is a modern backend for Web and Mobile apps, designed to radically simplify server-side development and deployment.
  • 3. RESTHeart Why? There are fundamental features every application always need to implement: ● Data persistence. ● Access management. ● API. RESTHeart provides out-of-the-box data persistence, secure authentication and role-based authorization, and a complete REST API on top of MongoDB.
  • 4. RESTHeart Main Features Data RESTHeart leverages MongoDB to provide all data functionalities required by modern applications. Supports all the features of MongoDB including queries, aggregations, change streams and transactions. Security Authenticate clients via multiple schemes and enforce role-based authorization policies. Security can be easily customized to integrate external providers or implement fine-grained security policies. Java Extension Framework Develop Web Services in minutes or execute custom behaviours on different stages of the request / response life-cycle. Deploy custom Java plugins just copying the JAR into a folder. REST API RESTHeart exposes a complete API that follows the REST paradigm and uses JSON as the representation format. Proxy Use RESTHeart as the Ingress for your microservices and handle them under the same security context. This makes possible to use external microservices, made with Node.js, Spring Boot, or AWS Lambda.
  • 5. RESTHeart RESTHeart simplifies client-server interaction ● Clients interact with RESTHeart using plain HTTP requests and JSON. ● RESTful paradigm makes the API clean, self-describing and easy to use. ● Works seamlessly with SPA frameworks (Angular, Vue, React, ecc) . ● Other clients (e.g. mobile apps) just require a HTTP client library.
  • 6. RESTHeart Technical Specifications ● Written in Java. ● On top of RedHat’s Undertow non-blocking HTTP server. ● Uses MongoDB and compatible databases for data persistence. ● Fully stateless. ● Can be packaged as a Docker container. ● Can be easily deployed both on Cloud and on premises.
  • 7. RESTHeart RESTHeart supports all MongoDB’s features, and more Read / Write JSON documents Binary data with GridFS Aggregations Transactions Data streams with WebSockets Data transformation & validation DB Management API Upload data from CSV files
  • 8. RESTHeart Supported databases RESTHeart is tested and supported with ● MongoDB Community. ● MongoDB Enterprise. ● Percona Server for MongoDB. ● Amazon DocumentDB (*). ● Microsoft Azure Cosmos DB (*). (*) Both databases are API-compatible with MongoDB v3, but with some specific limitations.
  • 9. RESTHeart Example: Query data with JavaScript const url = encodeURI('https://beta.mrest.io/demo/messages?filter={ "from":"Bob"}); fetch(url, { headers: {'key':'demo'} }) .then(response => response.json()) .then(json => JSON.stringify(json, null, 2)) .then(data => console.log(data)); HTTP/1.1 200 OK ... [ { "_id": { "$oid": "5db0067615f384eda89e5fab" }, "message": "hi there!", "from": "Bob", "timestamp": { "$date": 1571817078280 } } ] Run it
  • 10. RESTHeart Extension Framework RESTHeart can be extended via a plugin mechanism. ● Plugins allow to leverage the full power of the Java language. ● Just copy a JAR file into the ./plugins folder Main plugin categories: Services and Interceptors ● Services are bound to an URI, exchange HTTP requests and responses. ● Interceptors can read or modify requests and responses on the fly. Examples: https://github.com/SoftInstigate/restheart-examples
  • 11. RESTHeart Example: HelloWorld Web Service @RegisterPlugin( name = "hello", description = "a Web service that sends a greetings message with 1 annotation and 2 lines of code", defaultURI = "/hello") public class HelloService implements JsonService { @Override public void handle(JsonRequest request, JsonResponse response) throws Exception { response.setStatusCode(200); response.setContent(new JsonObject("message", "Hello World")); } } $ curl 127.0.0.1:8080/hello HTTP/1.1 200 OK { "message": "Hello World" }
  • 12. RESTHeart Real case example ● The project leverages MongoDB, RESTHeart and Angular. ● It took 215 man-days to go online. ● Only 11 man-days were invested into back-end development. ● Most of the team focused on UX/UI. ● Project start: mid September 2019 ● In production: end of December 2019 backend 5% frontend 95% autoinrete.com - B2B and C2B marketplace for used cars.
  • 13. RESTHeart Don’t reinvent the “backend wheel”: use RESTHeart!
  • 15. RESTHeart Licenses RESTHeart is distributed through a dual licensing model: 1. Open Source - under the GNU AGPL v3.0 license. 2. Enterprise - under a business-friendly license.
  • 16. RESTHeart RESTHeart Open source If you are a student, individual developer or a small Web agency and comfortable with the AGPL v3 license, then using the product as open source is likely to be your best option. ● Source code: https://github.com/softInstigate/restheart/ ● Community support is available on Github and Stackoverflow. ● You can chat on Gitter or join our Facebook community.
  • 17. RESTHeart AGPL license - implications The GNU Affero General Public License version 3 (AGPL v3) is a copyleft license nearly identical to the GPLv3 https://www.gnu.org/licenses/agpl-3.0.html. As the AGPL is based on the GPL, not the LGPL, it does not contain linking exceptions, and any derivative work using AGPL code (linked or otherwise, modified or not) must also be AGPL licensed and distributed. ● A Software that interacts with RESTHeart via its REST API is not considered as a derivative work, it just need to use any HTTP client library. ● The RESTHeart Java Extension Framework (restheart-commons) is licensed under the Apache 2.0 License: custom plugins don’t incur in the limitations of the AGPL and can be released with any license, either open or closed source. ● Any modification of RESTHeart’s core source code must be released as open source, under the terms of the AGPLv3 license, regardless it is embedded or accessed via a network.
  • 18. RESTHeart RESTHeart Subscription When a company is not comfortable with the AGPL open source license or need technical support, then it could purchase a RESTHeart Subscription, which comes with: ● Perpetual, business-friendly Enterprise license. ● 12 months of technical support. ● 12 months of supported upgrades to any new release of the product. ● Training (optional). ● Professional Services (optional). While the Enterprise license is perpetual, the subscription is annual and has to be explicitly renewed.
  • 19. RESTHeart Enterprise license The Enterprise license is perpetual and overcomes some limitations of the AGPL v3. Specifically, it grants the following rights: ● Use RESTHeart in closed source applications. ● Distribute RESTHeart embedded in closed source products. ● Get coverage against some legal risks, like third-parties IP claims.
  • 20. RESTHeart Subscription’s Levels and Pricing These depends on specific deployment needs Subscription Level RESTHeart’s instances (*) Deployment scenario Pricing Single 1 Single node, no HA requirements. € 6000 / year Cluster 3 Active/Active HA with up to 3 nodes. € 14000 / year Unlimited Unlimited, dynamic Elastic clusters, like Kubernetes or ECS. Negotiable OEM To be estimated Redistribute RESTHeart embedded in closed source products. Based on volumes (*) Only production instances matter: dev, test or other environments are free. We offer volume discounts.
  • 21. RESTHeart How many subscriptions do I need to buy? It’s simple: buy one RESTHeart subscription for each MongoDB production instance you want to connect to. So, with one annual subscription you get a license that allows to: 1. Run unlimited RESTHeart instances, connected to any number of non-production database instances (dev, test, staging, ...). 2. Run RESTHeart connected to one database production instance at a time. Subscriptions containing multiple licenses for multiple database instances are available upon request.
  • 22. RESTHeart Subscription renewals At the end of the standard 12 months subscription you can either: ● renew the subscription for another year (or more); ● or let the subscription expire and keep running RESTHeart at the latest version released during the subscription period. When the subscription expires (*) you are not supported anymore, but you can keep running RESTHeart in production, because the Enterprise license is perpetual. (*) If you decide to renew later, the new subscription period will start retroactively from the date it expired.
  • 23. RESTHeart Professional Services Professional services are optional and an available on demand. Example of activities: ● Extending RESTHeart with custom plugins. ● Handling security, authentication and authorization. ● Highly available deployments, on cloud and on premises. ● Validation of architectural decisions. ● Integration with other systems. ● Performance tuning and monitoring.
  • 24. RESTHeart Training We offer on demand, remote training sessions to RESTHeart’s customers, for up to 5 participants at a time. Class name Description Duration Pricing Introduction Basic RESTHeart elements. 2 hours € 600 Operations Advanced setup and configuration of RESTHeart deployments. 4 hours € 1200 Developers Develop modern Web applications with RESTHeart and MongoDB. 8 hours € 2400 A basic knowledge of MongoDB can be useful, but it is not a prerequisite for the “Introduction” classroom, while it’s recommended for the “Operations” and “Developers” classrooms.
  • 25. RESTHeart RESTHeart - recap of main differences Open source Subscription License type AGPL v3 Enterprise Technical support Supported HA clustering Closed source products Professional Services
  • 26. RESTHeart Open Source vs Commercial Subscription Subscription Technical support Enterprise license Open Source Professional services AGPL v3 license Closed source products Open source apps only OEM or Custom Terms license Training
  • 28. RESTHeart https://restheart.org For any question: ask@restheart.org RESTHeart is a division of SoftInstigate Legal office: SoftInstigate srl - Via G. D'Annunzio 28, 67100 L'Aquila (Italy) Head office: SoftInstigate srl - Via Copernico 38, 20125 Milano (Italy) Web: https://www.softinstigate.com | Email: info@softinstigate.com