Skip to main content

Posts

Showing posts with the label kafka

Comment system Architecture

Sockets A socket is one endpoint of a two-way communication link between two programs running on the network. It allows real time, bidirectional communication between the web client and server. This allows for logged in users to see comments in real time without refreshing the page in a similar way as in Google docs . Architecture  The GraphSpace notification system ( pull request ) sends users notifications when certain operations (such as graph deletion or graph creation) have been completed. In practice, many users (such as those in a large group) may receive these notifications, which involves creating database entries for each user. If we attempt to do all of these operations from the perspective of the user performing them. Thus, we elected to use Kafka (a messaging queue) to enable an asynchronous notification system. In the notification system architecture the notification has to be created only after a successful database operation of creating/deleting graph, ...

Websockets in Django

"WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011, and the WebSocket API in Web IDL is being standardized by the W3C." WebSockets are used for streaming messages. To implement real-time notification we need to stream messages from the server to the client without a refresh or making an HTTP request from the client. Hence websockets. We will be implementing sockets in Django using Django Channels. Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more.  But WSGI server does not support websockets(present gateway interface used by graphspace). We will be using Daphne , a server specially designed for channels. It's pretty easy to deploy channels on Daphne. For websockets we will be using ASGI as the gateway interface and Daphne as t...