magnhaug / thriftalicious

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

thriftalicious

Link til oppgaver: https://nanna.bekk.no/confluence/display/BEKK/Thrift

Case: Utfør et kjøp av en vare

  • Funksjonelle problemstillinger:

  • Kjøpe samme varen to ganger på rad

  • To forskjellige kjøper samme vare

    Thrift har ingen formening om message-semantikk. Man kan legge en message-queue på toppen av thrift.

  • Støtte flere ulike klienter

    Thrift er språk-uavhengig.

  • Støtte flere versjoner av ordreformat

  • Bekreftelse på kjøp

  • Flere?

Er teknologien/stilen/mønsteret:

  • (Disse bør en kunne svare på i løpet av dagen)
  • Basert på standarder (åpne/lukkede/finnes ingen) Har sin egen standard
  • Teknologi-agnostisk Ja. Kan generere typer og interface (klient og server) for de fleste aktuelle språk.
  • Testbar
  • Godt dokumentert: På ingen måte. Til tider feildokumentert. Lite eksempler på fullstack "enterprise" bruk.
  • Moden Ja. I stor bruk hos mange aktører. Brukt hos: Facebook, Evernote, LastFM, Simens.
  • Utviklingsvennlig
  • Simpel/enkel (basert på erfaringer i dag) Rent kodemessig er det få ting du må kjenne til. Ser ikke ut til å ta over kodebasen i noen større grad enn f.eks. Jersey. Må riktig kunne Thrift-DSL-et for å kunne få generert typer og klasser, men det er vel en trade-off mot at du kan bruke ulike språk mot samme type.
  • Transparent (enkelt å se hva som skjer)
  • Flere?

Hvordan håndterer teknologien/stilen/mønsteret:

  • (Her kan en prioritere selv hva en vil se nærmere på)
  • versjonering/endringer (data format evolution and extensibility)
  • Timeliness: Integration should minimize the length of time between when one application decides to share some data and other applications have that data.
  • Garantert mottak
  • Håndtere samme melding flere ganger
  • Skalering
  • Robusthet
  • Recovery/resilience
  • Tilgjengeliggjøring av funksjonalitet (ikke bare data)
  • Temporal kobling http://iansrobinson.com/2009/04/27/temporal-and-behavioural-coupling/
  • Spatial kobling (oppslag, lastbalansering, etc)
  • Responstid
  • Feil
  • Monitorering
  • Sikkerhet
  • "Egendefinerte datatyper" i format, eks dato i JSON
  • Flere?

About


Languages

Language:JavaScript 100.0%