SlideShare una empresa de Scribd logo
1 de 35
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_

Más contenido relacionado

La actualidad más candente

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 openshiftYusuf Hadiwinata Sutandar
 
Docker basics 30_01_21.ppx
Docker basics 30_01_21.ppxDocker basics 30_01_21.ppx
Docker basics 30_01_21.ppxPanuwat 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 YelpdotCloud
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerJames Turnbull
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at PipedriveRenno 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 developersAnvay Patil
 
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 dockerJEMLI 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 presentationthehoagie
 
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 - CCDaysCodeOps Technologies LLP
 

La actualidad más candente (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 a We need revisions and CRAP everywhere in Drupal core

Workflow Initiative
Workflow InitiativeWorkflow Initiative
Workflow Initiativetimmillwood
 
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 2017Codemotion
 
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 sitesdrupalindia
 
HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesAymen 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 KubernetesNicola Ferraro
 
Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014Alex De Winne
 
Choosing an Open Source CMS
Choosing an Open Source CMSChoosing an Open Source CMS
Choosing an Open Source CMSPhase2
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructurerhirschfeld
 
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 teamBrian 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 ApplittleMAS
 
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 2014chrisshattuck
 
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 8Robert Carr
 
Modernizing Your Application With Containers
Modernizing Your Application With ContainersModernizing Your Application With Containers
Modernizing Your Application With ContainersJay 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 stepsIhor Odynets
 
Content Staging in Drupal 8
Content Staging in Drupal 8Content Staging in Drupal 8
Content Staging in Drupal 8Dick 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 a 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
 

Más de Dick Olsson

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative UpdateDick Olsson
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8Dick 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 coreDick Olsson
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsDick 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 CoreDick 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 PublishersDick Olsson
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 

Más de 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
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

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_