Releases: edgemesh/client
3.3.0 (Markus)
β‘οΈ Features
- Enhanced caching strategy.
π¬ Developer Comments:
In the past, we would make attempts to correct common misconfigurations that would prevent an asset from being cached. While this increased cache hit rates slightly for most use cases, we found that this tradeoff no longer makes sense. Thus, we have decided to stay as close to the HTTP specification as we can to avoid any unforeseen edge cases. Your cookies and other important credentials are now included in the enhanced fetch method for all plan types. Also, you will notice that Edgemesh automatically ignores opaque responses now. No more spam in your console!
β¨Enhancements
- Ignore caching assets where
cache-control: max-age
is less than600
(10 minutes)
π¬ Developer Comments:
If you have an asset with amax-age
of less than 10 minutes, Edgemesh will now ignore it at the client level (historically this was a server-side setting). Note: Setting max-age to anything less than3600
(1 hour) will cause the browser to ignore caching it by default. See here.
- Ignore caching of assets where the
cache-control
is set toprivate
π¬ Developer Comments:
The way our revalidation engine is currently designed, every object is presumed to have a unique url. This isn't always the case withprivate
assets. If we are being honest, that isn't necessarily the case at all because there is no mechanism to enforce this rule. It's just what we consider best practice from a caching standpoint. We have some ideas to reintroduce caching support forprivate
assets and it will be re-enabled in a future version. In the meantime, if you have one url that can return multiple different objects, make sure you setcache-control
toprivate
orno-cache
.
3.2.2
β¨ Enhancements
- Move all static content to the Cloudflare edge.
π¬ Developer Comments:
We have gone full serverless! This will improve the delivery speeds of our websites and core assets. It will also give us finer control over our static file CDN caches.
- Send
Origin
header on asset revalidation checks.
π¬ Developer Comments:
When the Edgemesh backplane goes to revalidate an asset, we now try to mimic the original request on the client as closely as we can. In some field testing we found that it's not impossible for a web server to serve two entirely different objects based on header information. Adding theOrigin
header was an easy win to solve this field test's particular use case and is generic enough where it wouldn't adversely affect other requests.We will handle these edge cases as we discover them, as a one sized fits all solution is not immediately apparent. There are no horrible side effects if this condition is hit. Edgemesh works as it should, detecting the checksum mismatch and evicting the asset from cache (falling back to origin). At present all discovered occurrences of false positives on checksum comparison are resolved.
3.2.1 (Archie)
β‘οΈ Features
-
Automated reports! You will now recieve a performance report from Edgemesh via email each month (if your site has enough traffic). More reports will come soon.
-
Tested against wordpress
v5.4
due to be released at the end of this month (March 2020).
β¨ Enhancements
- Reduce global request timeout from 2 minutes to 30 seconds.
π¬ Developer Comments:
Edgemesh's average response time is~1ms
(see chart below). In order to protect against outliers, we have reduced the global request timeout to 30 seconds. Nothing should ever take that long.
- Canary deployment added to release cycle.
π¬ Developer Comments:
In order to add resilliancy to our deployments, all future Edgemesh releases will be first released to a canary environment with arc
tag. You can test your site against canary builds the same way we do. More documentation on that to follow.
3.2.0 (James)
β¨Enhancements
Added many performance improvements designed to make Edgemesh quieter and more effective.
- Optimize routing paths.
- Better detection of valid cacheable content.
- Smaller package sizes.
3.1.5 (Jesse)
β¨Enhancements
- Added compression to reduce beacon message size.
- Faster updates for Safari service workers.
π Bug Fixes
- Restrict Safari support to non Audio/Video assets.
Safari's implementation of range requests through the service worker is incomplete and causes Edgemesh to fail to render Audio/Video assets that have opaque responses. We are watching this issue closely and will re-enable support when Apple pushes a fixed version of Safari.
3.1.4
π Bug Fixes
- Fixes a bug where bounce rate was not being reported correctly on some Google Analytics segments.
- Fixed a bug where under rare conditions, a page could stall briefly during navigation.
3.1.3
β¨ Enhancements
- Updated support for Safari on Catalina, iPadOS and iOS. The recent releases of Safari by Apple caused a regression in Edgemesh. This has been fixed and future proofed.
- Added metric reporting support for browsers that cant be accelerated by Edgemesh.
3.1.2
β¨ Enhancements
- Added an option
softDisable
to prevent Edgemesh from unregistering the worker when it encouters an error or disabled configuration. This is useful if you are combining service worker services.
π Bug Fixes
- (Reporting) Fixed a bug where some Navigation Events logs were being dropped.
- (Install) Fixed a harmeless bug that throws an error on the genesis load.
3.1.1
π Bugfixes
- Fixes a bug where on occasion, buffer data could not be decoded properly between service worker and client.
3.1.0
β¨ Enhancements
- We have reduced the footprint of the Edgemesh Client quite significantly.
- There is no longer a need for a persistant websocket connection.
- Many backend improvements have allowed our message queues to drain faster. As a result message rates have doubled as the queues consumers are able to keep up now.
π Bugfixes
- Refactored background sync to ensure it stays off the critical path. Some customers were reporting a stall in page loads. This was due to a navigation event being performed during a background sync. Edgemesh now prioritizes all organic requests over its own operations.