Skip to content

Decision log

Linda edited this page Jan 14, 2020 · 6 revisions

January 14th, 2020

December 19th, 2019

Use JSON web tokens instead of sessions

December 9th, 2019

Choose Django + Postgres over Go, Node, and Serverless (!)

We selected Django with the Django REST Framework because it:

  • provides a common framework for building REST services
  • provides an opportunity for those learning Python to contribute
  • allows those experienced with Django to build on skills they already have
  • provides OpenAPI schema/documentation of the services
  • exposing CodeBuddies as REST endpoints encourages decoupling from a single UI
  • while other technology choices may offer better performance in certain situations, we haven't identified any CB functionality requiring performance optimization

We considered but ruled out the following:

  • Go - low interest among the CB community to learn it
  • Java - low interest among the CB community
  • Node - some interest, but not enough people familiar with it
  • GraphQL - additional complexity that doesn't solve an identified problem in the CB codebase. Can be added later if required. Isn't performant with Django right now, though.
  • Serverless and GraphQL (using Netlify and AWS Lambda) -- newer/untested technology, fewer Stackoverflow references, depending on Netlify may be expensive if traffic grows

(h/t to @BillGlover for writing most of the bullet points above)

Clone this wiki locally