Background
Drupal 8 has so far seen many major improvements to alternative ways to access data through the inclusion of REST in core. In an environment where Drupal may be increasingly accessed by means other than http, we will need a way to allow other systems to more easily access, in real time, content managed by drupal and cause actions within drupal. We propose an initiative with goals to improve in this area by including new experimental core functionality.
A big focus for this initiative will be to get the necessary sign-offs ahead of time in order to make it possible (and sustainable) to work toward the big end goals of this initiative.
Goals
We need to strategize around this. Right now I am researching running Drupal as a service or daemon that would allow alternate access endpoints to be managed. I am not sure this is the best solution for this, but it is the best thing I can think of at this time --suggestions are welcome.
Other strategies:
- SDK that can access Drupal's data but is otherwise self-contained.
- ... We need more of these.
Must have
Access points for systems inside and outside of php to access Drupal's systems and cause events and reactions within drupal. This could take the form of Drupal running a websocket endpoint, or a socket connections, or MQTT connection. The specifics are not important and the actual connection needs to be able to be handled in core. Drupal needs to facilitate this and manage the safe starting and stopping of the connection.
Should have
One (or more) connection endpoint out of the box and SDKs that support that endpoint for different development environments.
Suggested list of supported SDKs:
- PHP
- Javascript
- Nodejs
- Swift
- Java (android)
Could have
More supported endpoints and SDKs out of the box.
Signoffs needed from contrib maintainers
Thanks to the Content Workflow Initiative. I took much of the structure of this from that post.