Discussion about this post

User's avatar
Neural Foundry's avatar

This overview provides an "idealized" view of how Cloudflare has evlved and the core components of HTTP, TLS, Proxies and Concurrency, however it misses many of the trade offs that you will typically see when developing and deploying applications on these platforms. While Cloudflare's new Platform offerings have been well received, there are many questions to answer for developers who need to move past basic Worker Apps, such as vendor lock in, managing multi region state and debugging in a completely distributed architecture at the Edge, none of which are show stoppers, however all are very important considerations that far exceed the capability check list.

Also, the backend technology stack diagram, while technically correct, illustrates a problem most teams do not experience as a result of selecting the wrong programming language or framework, rather most teams experience problems due to underestimating migration complexity, entangled domain boundaries, or the cost of supporting fifteen microservices that should have remained as single services.

While the technical explanation of HTTP versus HTTPS is correct, in practice the difficulties experiencd by real world applications are not the handshakes themselves, but the complexities of debugging certificate chains, cert renewal across multiple region fleets and supporting clients that still provide buggy TLS implementations. Typically, curl verbose works fine until it does not.

Similarly, the Proxy portion of this overview is also accurate, however one of the largest omissions in terms of Observability and Caching Rules is critical to the operation of Reverse Proxies. Most of the mystery bugs I solve can be attributed to either misconfigured Reverse Proxies performing request normalization or quietly removing headers. This is where these concepts transition from purely theoretical.

Finally, with regards to Concurrency versus Parallelism, while Rob Pike's quote is frequently referenced, it is often forgotten that the true cost of the design is that most outages I see are related to Concurrency Issues such as races, starvation and deadlocks masquerading as performance issues. In my experience, parallelism is almost always the easier part of solving concurrency issues, provided that the design itself is sound.

Expand full comment

No posts

Ready for more?