diff options
Diffstat (limited to '')
-rw-r--r-- | README.md | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb1dfc8 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# webappirc + +**This is currently just an idea with no implementation at all.** + +There are many ways people attempt to achieve scalable JavaScript-based web +applications. While my disdain for web applications that uses unnecessary +JavaScript persists, I do wish to see what I could do in this realm. + +Instead of using Kubernetes and other approaches to load balancing, I would +like to take a novel approach that uses the existing internal-federation of IRC +networks for load balancing. I have no idea how this should be implemented, but +the idea is: + +- The browser requests the initial static web page. +- The web page is some simple JavaScript that connects to a server via + WebSocket IRC, and renders content according to what it receives from the IRC + server (of whatever desired format: HTML, JSON, or perhaps some new + protobuf-like thing). +- On the side of the IRC network, there are oper'ed clients (perhaps + pseudoservers, or perhaps [HaxIRCd](https://git.andrewyu.org/hax/haxircd.git) + pseudoclients) that talk to newly connected users, and state is synchronized + as the oper'ed clients communicate with each other. + +There are some limitations that I haven't thought of mitigations to yet: + +- Various race conditions. +- IRC messages in most server protocols must be interpreted sequentially, and + that's not necessarily the most scalable way to do things. |