24 karma · joined December 6, 2013
The original intent for this project is for learning how to build agents, and finding what are the limits in the browser. Especially now that we have WebLLM. Maybe we can find a use for it with local agents
Here's our current CPU Utilization. https://images.ctfassets.net/3prze68gbwl1/1wy7lTmXHA1liIlcMW...
We're paying AWS for servers that remain hot that we don't use effectively.
The various methods to coordinate information between devices on the internet should be looked at objectively and mechanically. At the end of the day, the modern reliable messaging protocols use the IP Frames. The basis of our internet. Layer 6 protocols based on IP Frames are not equal. Many methods are not compatible with the various configurations of networks. The bytes and bandwidth required between each production-ready method differ.
* HTTP/1.1 - 100% Compatibility
* HTTP/2.0 - 100% Compatibility with client initiated connectivity and backward compatibility with HTTP/1
* MQTT - near-full internet wide compatibility ( routing policy / network topology )
* WS - near-full internet wide compatibility ( routing policy / network topology )
Each message received using these mechanisms requires TCP ACKs. The promise of MQTT and WS leads you to believe that the data streaming to your device over WS or MQTT don't require ACKs. However this is not how TCP works. When packets are received there is an associated timeout and retransmission when an ACK is late or missing. Additionally light-weight layer 6 traffic is required to maintain connectivity between two endpoints. Otherwise LRUs and quotas are triggered for routes could be treated as stale, and therefore dropped altogether. This is the underlying mechanism of the layer 6 protocols that are often left out of the discussions.
There is a clear winning approach in my mind. HTTP/2.0 includes, by default, server-initiated data push. The required TLS and header compression, as part of the spec, allow for a secure yet efficient streaming solution. With HTTP/2.0, TCP socket limits are less of a concern, as the client only needs one TCP socket to subscribe to an unlimited number of data feeds. HTTP/1 requires the client to maintain separate sockets for each independent stream, as HTTP/1 enforces head-of-line ordering for muxing. Something we've done special for HTTP/1 clients, we've added multiplexing by allowing multiple topic subscriptions and filter expressions to be passed in a single HTTP call on the same socket. This isn't natively built into HTTP/1 and is supported on all our SDKs.
This is why we have chosen HTTP/2.0 as our next-gen transport protocol. We have started by providing HTTP/2.0 connectivity at our edge for select customers. As of 2018 PubNub is the world-record holder for the largest online concurrent event in human history using HTTP/2.0 for live data streams on a globally celebrated sporting event.
You should be using HTTP/2.0 for your customers. Here is a dockerfile that makes it easy for you to start testing HTTP/2.0 - https://github.com/stephenlb/http2-proxy
Stephen Blum ( @stephenlb ) CTO PubNub
Senior Product Manager who will take a leadership role working with team members who have experience in large scale systems.
Apply: https://www.pubnub.com/company/careers/?gh_jid=1077030
Go / Rust / Python / C and other languages power the +300 million connections receiving JSON payloads on mobile devices to trigger in-app updates for Taxi / Ride Sharing / Chat / Live TV Interactions / Internet of Things / Doorbells / Location Tracking and more.
A good time to join when you are ready to move up your job role or ready to try something new in Developer APIs.
Running on AWS Amazon in with Docker and Kubernetes.
Apply: https://g.co/kgs/r4jGgY
Docker / K8s - building deployment and ops on Amazon AWS. We are moving from Hashicorp tools like Terraform to the latest Kerbernetes.
Apply: https://g.co/kgs/MQu53x
User Experience / Product Manager who wants to make a super-good developer API experience.
Apply: https://g.co/kgs/VqGmJA