Comparison of web app architectures
Streaming HTML from server to client the way PushMode does has its advantages compared to other web architectures. The following summarizes the differences. PushMode cannot be better in every way, but you will notice it provides interesting balance of productivity, interactivity, and performance.
App streaming | HTML streaming | Single page app | Server scripting | |
---|---|---|---|---|
Implementations | AWS AppStream, ... | PushMode | MeteorJS, React, ... | PHP, JSP, ... |
Programming language | any | JVM-based | JavaScript | any |
Libraries | unlimited | unlimited | performance budget | unlimited |
Code complexity | event-driven | mostly templates | client-server | mostly templates |
Interactivity | perfect | high | perfect | HTML forms |
Reactivity | depends on the app | always fresh | where implemented | none |
Graphics | video stream | interactive SVG | HTML5 | static images |
Indexing & SEO | none | good | with workarounds | good |
Page loading | very slow | fast | slow | fast |
Client load (CPU & RAM) | high | low | high | low |
Server load (CPU & RAM) | high | moderate | low | low |
Network traffic | high | low | high when loading | low |
UI responsiveness | 1 RTT | 1 RTT | CPU-bound | high |
Query responsiveness | 1 RTT | 1 RTT | requires optimization | 1 RTT |
Attack surface | UI | UI | REST API | URLs |
Monitoring & analytics | server-side | server-side | client & server | server-side |