read-write-web / rww-play

read write web Play
59 stars 19 forks source link

Plugin system #151

Open sylvainlb opened 9 years ago

sylvainlb commented 9 years ago

A very open subject I've been thinking of recently, I'm not sure if it's the best answer but here's my guess.

There are quite a few tasks that current web servers do and that cannot be handled by a plain LDP server. I'm wondering if it couldn't be a good idea to open a middleware plugin system, that could work on the data before it's stored or sent.

I'm thinking of two main functions:

If we were able to add a simple component to the RwwPlay! server, we could implement such features with little effort. Right now the only solution I can think of for this issue is to develop a full server that basically does LDP+the plugin in question.

Any thoughts?

bblfish commented 9 years ago

Plugins to make it easy to add features is a good idea. But these should as far as possible be standard features. For validation we'll be able to use the results of the data-validation group http://www.w3.org/2014/data-shapes/charter Data-transformation could be an interesting plugin yes - a bit tricky, and very involved. I'd rather leave that to much later down the road, or when the need is acutely felt.

sylvainlb commented 9 years ago

Very interesting, I didn't know of the data shapes working group. It looks like we can always say "There's a w3c group for that!"... I just wonder if it covers everything, for example "Make sure user B validated the transaction before user A gets paid".

As for the data transformation, I typically thinking of a PLP to FOAF use case. I'm thinking it's a bit heavy to be done on the client side.

I guess I need more thinking on both use cases.

bblfish commented 9 years ago

I think that's why we have to start with the simple examples first, such as those that are on the road map https://github.com/read-write-web/rww-play/wiki/RoadMap . Akka is pretty flexible to allow a plugin system to be built, but better start with simple plugins rather than complex ones. A simple plugin would be a mechanism whereby an agent can register his interest in being pinged.

sylvainlb commented 9 years ago

Definitely, I just wanted to start a discussion to get the time to mature my thinking.