Right now Deki start-up, starts up a lot of child services instead of having them start themselves up. The primary reason for this is that there is no good way for services to find an existing instance of a service they need to talk to. Deki acts as the injector starting services in order and passing their uri's and cookies to the services that need access to them.
If services could declare named services to be injected at start-up, along with the appropriate cookies or keys, then service decoupling would become significantly easier
Most permissioning beyond access to a service is done based on the current user. Currently, monolithic deki has the user information set up at request start, however decoupled services have to call deki/users/current and pass along the request headers they received in order for this to work. There is an implicit assumption that the request headers will have the right information for passing this along, which becomes more brittle with more chaining of decoupled services (only one has to do something without the user context for the chain to fail)
In addition, this methodology of impersonation only works as long as work is done in the context of a request. I.e. any queued or asynchronous work loses the impersonation context.
In order for decoupling to get to the level where Deki is truly a document driven service, service to service calls (at least when local) need to get a lot closer to method calls in efficiency. This may mean that a the request information from the original outside request travels along with local requests rather than be rebuilt or that other method of taking shorter code paths that don't treat the request as a full call from an outside http client.
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |
Copyright © 2011 MindTouch, Inc. Powered by