SlideShare a Scribd company logo
C O R E C O N V E R S A T I O N S
REVISIONS EVERYWHERE
@ D I C K O L S S O N – D I X O N _
★ What’s the problem?
★ How other systems solve the problem
★ A bit of Drupal history
★ What can we do?
★ Demo
★ Discussion
AGENDA
★ Discuss improvements to Entity API
★ Discuss inclusion in core
★ Feedback, thoughts and questions
during this session
GOALS
Long time contributor to core
and contrib.
Working for a pharma
company, making Drupal work
for hundreds of sites (and
thousands of environments).
ABOUT ME
Me smiling
Dick Olsson – @dickolsson
WHAT’S THE PROBLEM?
We’ve all been here…
This is not the answer…
Neither is this…
…and yet, we don’t care about our users’ data
DRUPAL IS A CMS
Not possible to undo a delete
Content is blindly overwritten when updated
Concurrent editing is not supported
Entity Revision API in D8 is good,
but not enabled by default anywhere
Local development
Editorial content staging
Editing in production
User generated content
Integrated systems
API clients
…and yet, we haven’t realized our content is too
DRUPAL IS DISTRIBUTED
Be careful about our users’ data
Concurrent editing
Content workflow
Content staging
Conflict handling
…which are difficult/impossible at the moment
USE CASES
Manage content and workflow
Move and share content
Compliance and audit
Letting our users trust Drupal,
knowing that the system care about your content
RELAX! :-)
…for our end-users
WHAT REALLY MATTERS
SYSTEMS THAT CARE
Distributed Version Control Systems
Databases capable of (true) multi-master replication
SYSTEMS THAT CARE
Assumes its content is distributed
Every change is a new revision (even delete)
Every revision has a universally unique hash
Every revision has a universally identifiable parent
GIT
...a great distributed version control system
Apache CouchDB
Cloudant
MySQL
PostgreSQL BDR
Oracle
Microsoft SQL
MULTI-MASTER DATABASES
...list from Wikipedia
Apache CouchDB
Cloudant
MySQL
PostgreSQL BDR
Oracle
Microsoft SQL
MULTI-MASTER DATABASES
...list from Wikipedia
Assumes its content is distributed
Every change is a new revision (even delete)
Every revision has a universally unique hash
Every revision has a universally identifiable parent
Defines a reusable HTTP replication protocol
APACHE COUCHDB
...a true multi-master database
SOME DRUPAL HISTORY
★ Notes from early Drupal 8 BoF:
https://groups.drupal.org/node/133579
★ Feature in Watchdog:
https://drupalwatchdog.com/node/502
★ “I just want to edit a node”:
http://denver2012.drupal.org/content/i-just-
want-edit-node
★ “Content Staging in Core”:
http://denver2012.drupal.org/content/content
-staging-core
PAST DISCUSSIONS
CRAP!
“IN DRUPAL 8 […] THERE ARE TWO COMPETING APPROACHES:
CRUD AND CRAP (CREATE, READ, ARCHIVE, PRUNE). […] THE
LATTER WOULD SOLVE OUR ISSUES WITH REVISIONS AND THUS
IS MY PREFERENCE.”
– CHX
We want to manage content and workflow well
Complex topic with too many use cases
to consider for core
Need for revisions are the lowest common denominator
across all use cases
Other systems have solved parts of the problem already
CRAP vs CRUD
(Create, Read, Archive, Prune)
TO SUMMARIZE
WHAT CAN WE DO?
Multiversion
(content revisions)
+
RELAXed Web Services
(API)
+
Deploy
(UI for content staging)
DRUPAL 8 CONTRIB
...iterate and mature the ideas
MULTIVERSION DEMO
A N D R E L A X E D W E B S E R V I C E S
Done a lot of coding on
Multiversion and Relaxed WS
modules.
Multiple core patches within
the last couple of months.
CREDIT
Awesome guy
Andrei Jechiu – @jeqq
Enable revisions for node types by default
BABY STEPS
...things we can do in core today
Assume content is distributed
Enforce revisions
Every change is a new revision (even delete)
Give revisions a universally unique hash
Revisions should have a universally identifiable parent
Expose revisions over a RESTful API (RELAXed WS)
LONG TERM
We just need to use existing APIs differently
Additional “rev” field
Additional “deleted” field
Change logic in save and delete methods
for base storage handler
DRUPAL 8.X?
...can we backport from Multiversion module?
DRUPAL 9?
WHAT DID YOU THINK?
EVAULATE THIS SESSION - LOSANGELES2015.DRUPAL.ORG/SCHEDULE
THANK YOU!
Does this belong in core?
Drupal 8.x or 9.x?
Are there other use cases?
Performance and scaling issues?
Discuss!
QUESTIONS?
@dickolsson – dixon_

More Related Content

What's hot

create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshift
Yusuf Hadiwinata Sutandar
 
Docker basics 30_01_21.ppx
Docker basics 30_01_21.ppxDocker basics 30_01_21.ppx
Docker basics 30_01_21.ppx
Panuwat Boonrod
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from Yelp
dotCloud
 
Docker for dev
Docker for devDocker for dev
Docker for dev
Erik Talboom
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
James Turnbull
 
Workshop Docker 101
Workshop Docker 101Workshop Docker 101
Workshop Docker 101
Dennis Laumen
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at Pipedrive
Renno Reinurm
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
Anvay Patil
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
Wyn B. Van Devanter
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
Jérôme Petazzoni
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
dotCloud
 
Getting started with docker
Getting started with dockerGetting started with docker
Getting started with docker
JEMLI Fathi
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
Yusuf Hadiwinata Sutandar
 
ACM Gazi Docker?
ACM Gazi Docker?ACM Gazi Docker?
ACM Gazi Docker?
kloia
 
Immutable infrastructure with Docker and containers (GlueCon 2015)
Immutable infrastructure with Docker and containers (GlueCon 2015)Immutable infrastructure with Docker and containers (GlueCon 2015)
Immutable infrastructure with Docker and containers (GlueCon 2015)
Jérôme Petazzoni
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
thehoagie
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
Zohar Stolar
 
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDaysThe world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
CodeOps Technologies LLP
 

What's hot (20)

create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshift
 
Docker basics 30_01_21.ppx
Docker basics 30_01_21.ppxDocker basics 30_01_21.ppx
Docker basics 30_01_21.ppx
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from Yelp
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Workshop Docker 101
Workshop Docker 101Workshop Docker 101
Workshop Docker 101
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at Pipedrive
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
 
Getting started with docker
Getting started with dockerGetting started with docker
Getting started with docker
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 
ACM Gazi Docker?
ACM Gazi Docker?ACM Gazi Docker?
ACM Gazi Docker?
 
Immutable infrastructure with Docker and containers (GlueCon 2015)
Immutable infrastructure with Docker and containers (GlueCon 2015)Immutable infrastructure with Docker and containers (GlueCon 2015)
Immutable infrastructure with Docker and containers (GlueCon 2015)
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
 
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...Introduction to containers  running dockers using kubernetes - הרצאה לכנס מיק...
Introduction to containers running dockers using kubernetes - הרצאה לכנס מיק...
 
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDaysThe world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
 

Similar to We need revisions and CRAP everywhere in Drupal core

Workflow Initiative
Workflow InitiativeWorkflow Initiative
Workflow Initiative
timmillwood
 
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Codemotion
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
drupalindia
 
HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best Practices
Aymen EL Amri
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
Nicola Ferraro
 
Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014
Alex De Winne
 
Views
ViewsViews
Choosing an Open Source CMS
Choosing an Open Source CMSChoosing an Open Source CMS
Choosing an Open Source CMS
Phase2
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
rhirschfeld
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
littleMAS
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
Eric Sembrat
 
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
chrisshattuck
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
Robert Carr
 
Modernizing Your Application With Containers
Modernizing Your Application With ContainersModernizing Your Application With Containers
Modernizing Your Application With Containers
Jay Gordon
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
Ihor Odynets
 
Content Staging in Drupal 8
Content Staging in Drupal 8Content Staging in Drupal 8
Content Staging in Drupal 8
Dick Olsson
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
vty
 
Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing
Ricardo Amaro
 

Similar to We need revisions and CRAP everywhere in Drupal core (20)

Workflow Initiative
Workflow InitiativeWorkflow Initiative
Workflow Initiative
 
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
 
HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best Practices
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014
 
Views
ViewsViews
Views
 
Choosing an Open Source CMS
Choosing an Open Source CMSChoosing an Open Source CMS
Choosing an Open Source CMS
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
 
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
 
Modernizing Your Application With Containers
Modernizing Your Application With ContainersModernizing Your Application With Containers
Modernizing Your Application With Containers
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
 
Content Staging in Drupal 8
Content Staging in Drupal 8Content Staging in Drupal 8
Content Staging in Drupal 8
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing
 

More from Dick Olsson

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative Update
Dick Olsson
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8
Dick Olsson
 
Planning for CRAP and entity revisions in Drupal core
Planning for CRAP and entity revisions in Drupal corePlanning for CRAP and entity revisions in Drupal core
Planning for CRAP and entity revisions in Drupal core
Dick Olsson
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media Organizations
Dick Olsson
 
Let's Take Drupal Offline!
Let's Take Drupal Offline!Let's Take Drupal Offline!
Let's Take Drupal Offline!
Dick Olsson
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal Core
Dick Olsson
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
Dick Olsson
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
Dick Olsson
 

More from Dick Olsson (8)

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative Update
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8
 
Planning for CRAP and entity revisions in Drupal core
Planning for CRAP and entity revisions in Drupal corePlanning for CRAP and entity revisions in Drupal core
Planning for CRAP and entity revisions in Drupal core
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media Organizations
 
Let's Take Drupal Offline!
Let's Take Drupal Offline!Let's Take Drupal Offline!
Let's Take Drupal Offline!
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal Core
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 

Recently uploaded

Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

We need revisions and CRAP everywhere in Drupal core

  • 1.
  • 2. C O R E C O N V E R S A T I O N S REVISIONS EVERYWHERE @ D I C K O L S S O N – D I X O N _
  • 3. ★ What’s the problem? ★ How other systems solve the problem ★ A bit of Drupal history ★ What can we do? ★ Demo ★ Discussion AGENDA
  • 4. ★ Discuss improvements to Entity API ★ Discuss inclusion in core ★ Feedback, thoughts and questions during this session GOALS
  • 5. Long time contributor to core and contrib. Working for a pharma company, making Drupal work for hundreds of sites (and thousands of environments). ABOUT ME Me smiling Dick Olsson – @dickolsson
  • 8. This is not the answer…
  • 10. …and yet, we don’t care about our users’ data DRUPAL IS A CMS Not possible to undo a delete Content is blindly overwritten when updated Concurrent editing is not supported Entity Revision API in D8 is good, but not enabled by default anywhere
  • 11. Local development Editorial content staging Editing in production User generated content Integrated systems API clients …and yet, we haven’t realized our content is too DRUPAL IS DISTRIBUTED
  • 12. Be careful about our users’ data Concurrent editing Content workflow Content staging Conflict handling …which are difficult/impossible at the moment USE CASES
  • 13. Manage content and workflow Move and share content Compliance and audit Letting our users trust Drupal, knowing that the system care about your content RELAX! :-) …for our end-users WHAT REALLY MATTERS
  • 14.
  • 16. Distributed Version Control Systems Databases capable of (true) multi-master replication SYSTEMS THAT CARE
  • 17. Assumes its content is distributed Every change is a new revision (even delete) Every revision has a universally unique hash Every revision has a universally identifiable parent GIT ...a great distributed version control system
  • 18. Apache CouchDB Cloudant MySQL PostgreSQL BDR Oracle Microsoft SQL MULTI-MASTER DATABASES ...list from Wikipedia
  • 19. Apache CouchDB Cloudant MySQL PostgreSQL BDR Oracle Microsoft SQL MULTI-MASTER DATABASES ...list from Wikipedia
  • 20. Assumes its content is distributed Every change is a new revision (even delete) Every revision has a universally unique hash Every revision has a universally identifiable parent Defines a reusable HTTP replication protocol APACHE COUCHDB ...a true multi-master database
  • 22. ★ Notes from early Drupal 8 BoF: https://groups.drupal.org/node/133579 ★ Feature in Watchdog: https://drupalwatchdog.com/node/502 ★ “I just want to edit a node”: http://denver2012.drupal.org/content/i-just- want-edit-node ★ “Content Staging in Core”: http://denver2012.drupal.org/content/content -staging-core PAST DISCUSSIONS
  • 23. CRAP!
  • 24. “IN DRUPAL 8 […] THERE ARE TWO COMPETING APPROACHES: CRUD AND CRAP (CREATE, READ, ARCHIVE, PRUNE). […] THE LATTER WOULD SOLVE OUR ISSUES WITH REVISIONS AND THUS IS MY PREFERENCE.” – CHX
  • 25. We want to manage content and workflow well Complex topic with too many use cases to consider for core Need for revisions are the lowest common denominator across all use cases Other systems have solved parts of the problem already CRAP vs CRUD (Create, Read, Archive, Prune) TO SUMMARIZE
  • 26. WHAT CAN WE DO?
  • 27. Multiversion (content revisions) + RELAXed Web Services (API) + Deploy (UI for content staging) DRUPAL 8 CONTRIB ...iterate and mature the ideas
  • 28. MULTIVERSION DEMO A N D R E L A X E D W E B S E R V I C E S
  • 29. Done a lot of coding on Multiversion and Relaxed WS modules. Multiple core patches within the last couple of months. CREDIT Awesome guy Andrei Jechiu – @jeqq
  • 30. Enable revisions for node types by default BABY STEPS ...things we can do in core today
  • 31. Assume content is distributed Enforce revisions Every change is a new revision (even delete) Give revisions a universally unique hash Revisions should have a universally identifiable parent Expose revisions over a RESTful API (RELAXed WS) LONG TERM
  • 32. We just need to use existing APIs differently Additional “rev” field Additional “deleted” field Change logic in save and delete methods for base storage handler DRUPAL 8.X? ...can we backport from Multiversion module?
  • 34. WHAT DID YOU THINK? EVAULATE THIS SESSION - LOSANGELES2015.DRUPAL.ORG/SCHEDULE THANK YOU!
  • 35. Does this belong in core? Drupal 8.x or 9.x? Are there other use cases? Performance and scaling issues? Discuss! QUESTIONS? @dickolsson – dixon_