← Back to all sparks
S

Skipper

INFRA · APIS
Velocity7.5

HTTP router and reverse proxy for service composition

Skipper adds Redis as a distributed L2 cache backend amid a high-frequency patch cadence.

api-gatewaycachingredispatch-cadenceperformance
Current state
Skipper is running in a maintenance-heavy patch cycle, shipping multiple versions per week focused on stability, test infrastructure, and minor performance work. The architectural addition this period is v0.27.92's Redis L2 storage for the cache() filter, which extends caching from node-local to cluster-shared. v0.27.95's parsed filter and predicate caching across RouteGroups is a performance improvement but stays within the current architecture.
Where it's heading
The Redis L2 integration suggests the Skipper team is addressing the multi-replica cache coherence problem that large deployments encounter. If this pattern continues, distributed-state options—persistent rate limiting, distributed circuit breakers using the same Redis client abstraction—are the natural follow-ons. The high patch cadence signals active production deployment rather than feature-driven development.
Prediction
The Redis client abstraction introduced in v0.27.92 will be extended to other stateful filters, particularly rate limiting, given that distributed rate limiting is the most common request for API gateways running at multi-replica scale.

Recent moves

  1. 17h ago

    v0.27.95: Cache parsed filters and predicates across RouteGroups

    v0.27.95 caches parsed filters and predicates across RouteGroups rather than re-parsing per group, reducing CPU overhead in configurations with many repeated filter or predicate expressions. This addresses a performance footprint issue introduced in v0.27.71 where the parse cache was scoped too narrowly.

    View source ↗
  2. 22h ago

    v0.27.94: Documentation fixes and multiarch Docker image

    v0.27.94 adds missing Let's Encrypt documentation, fixes outdated version references in the README, and publishes a multiarch Docker image. No behavioral changes.

    View source ↗
  3. 22h ago

    v0.27.93: Fix config test for Let's Encrypt defaults

    v0.27.93 fixes a failing config test for Let's Encrypt defaults introduced in a prior refactor. Test-only fix with no user-visible effect.

    View source ↗
  4. 6d ago

    v0.27.92: Redis L2 storage for the cache() filter

    ⚡ SPARK

    v0.27.92 adds Redis as an L2 backing store for the cache() filter, turning Skipper's caching model from node-local to cluster-shared. A RedisRingClient now implements the L2 interface, meaning any Skipper replica can serve a warm cache hit from Redis rather than only from its local in-memory store.

    View source ↗
  5. 8d ago

    v0.27.91: Dependency updates

    v0.27.91 bumps six Go module dependencies (patch and minor versions). No behavioral changes.

    View source ↗
  6. 8d ago

    v0.27.90: Use testcontainers for etcd in tests

    v0.27.90 replaces host etcd process management in tests with testcontainers-go, removing host binary download scripts. Test infrastructure improvement with no effect on production behavior.

    View source ↗