Skip to content

Potential Questions

Philip Weaver edited this page Jul 10, 2015 · 19 revisions

This is a list of questions that new users could potentially raise when working with DeepStream.

Q: The tutorial states it's best to use UIDs as record identifiers. If I use a UID as the record identifier for a user instead of username, what's the best way to lookup that user record during authentication? The reason for asking is because the main search plugin seems to be specific to RethinkDB.

Q: I understand that the DeepStream client library is used in the browser and on the server. How can I keep server-side event messaging private among agents on the NodeJS backend without these messages being exposed to all of the browser clients?

Q: Is it possible to monitor or intercept any kind of message on the server? Is canPerformAction currently the only way to realize this? Or does the client API support client.on("message").

Q: The DeepStream client library seems to be used in the browser frontend and in NodeJS on the backend. What's up with that? Why would I want to use a client library on the server? A: Scalable modules.

Q: Potentially there will be a lot of security handling code to implement inside canPerformAction on the server. Has anyone written a plugin for permissions and canPerformAction?

Q: As I create new records using record.getRecord(), do they automatically get added to lists or do I have to use list.addEntry to manually add it?

Q: Why do lists contain references to record identifiers instead of actual records themselves?

Q: How do I go about locking down my DeepStream server later so that clients can not create arbitrary tables in the database when records are created.

Q: When I create a new record, why does DeepStream emit a create_or_read action instead of separate actions for create or read? I would like to enforce that a specific client is not permitted to create new records. How can I do this is I never see the ACTIONS.CREATE actions being called?