Skip to content

Instantly share code, notes, and snippets.

@amaierhofer
Created August 8, 2015 22:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save amaierhofer/2a3a53731f4dd00afb30 to your computer and use it in GitHub Desktop.
Save amaierhofer/2a3a53731f4dd00afb30 to your computer and use it in GitHub Desktop.

Caching

Problemstellung

  • Peaks (von 50 auf 5000 Clients)
  • Multiprozess Architektur (Versandmodul, cron jobs, shared db)
  • Langsame Antwortzeiten aufgrund von DB Queries

Demo v5 API

curl -H 'WEAL_API_KEY: single' http://localhost:3000/v5/current.json | jq .

Probleme v5 API

  • Query String nicht genützt
  • Komplexe Datenstruktur (nesting von entities)
  • Vermischung privater / öffentlicher Daten
  • SSL

Demo v6 API

curl 'http://localhost:3000/v6/current.json?zip_ids=1000&user_id=6' | jq .

Changes v6 API

  • Entity Ids als Parameter
  • Flachere Struktur
  • Nesting nur wenn gleiche Gültigkeit

Internal Changes v6

  • Cache vorbefüllt, nicht on-demand
  • Komplette Anworten bzw Text Bausteine gecached (nicht json)
  • Primitives statt Objekte gecached (serialize / deserialize)
  • SSL für nicht sensitive requests deaktiviert

Nicht vergessen

  • Changes benchmarken (apache bench)
@amaierhofer
Copy link
Author

@dzubi So grob stell ich mir die Präsentation vor. Meinst du das reicht?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment