Pulse Real-Time Dashboards Architecture
 
			Data Flow
Starting from the front-end, when a user connects:
- The user downloads a modern single page react based application that uses a modern fast charting library to provide animated charts
- When a dashboard is opened, it opens a websocket to allow real-time fast updates from the server.
- The server controls security, authentication and data access controls.
- The server can connect to either real-time or database data sources depending on the dashboard configuration:
- Databases
					- You have existing data in a MySQL/PostgreSQL/kdb+ or any JDBC compatible database.
- The server will poll the data on a schedule the author has set, only taking action on changes.
 Real-Time
- You have real-time data producers in Java/Python/C#
- You publish the data to either a QDB or KDB database.
							
 QDB is faster/easier and preferred but currently only supports smaller data sets.
- The server will create a new thread per client that subscribes to that external source.
- The real-time QDB/KDB will push updates to the server and onwards to the client.
Security Plugins
The server can be configured to check HTTP endpoints for authentication and authorization.
- Authentication Endpoint e.g. 
					http://qdb-master.com/?.z.pw[((username));((password))] 
- Authorization Endpoint e.g. 
					http://qdb-master.com/?isAuthorized[((username));((dashboardName))] 
 
                                        