Skip to content

Instantly share code, notes, and snippets.

@veevidify
Last active October 19, 2021 06:21
Show Gist options
  • Save veevidify/4e144b2ce323a6bb5590bf2684e57ce2 to your computer and use it in GitHub Desktop.
Save veevidify/4e144b2ce323a6bb5590bf2684e57ce2 to your computer and use it in GitHub Desktop.
HTTP backend framework checklist

auth

  • OAuth2
  • JWT
  • session (web)
  • RBAC
  • middlewares

config

  • pick up ENV
  • dev / staging / prod
  • dotenv for dev
  • feature flag

routing / controllers

  • route matching functions
  • grouping, sub-route
  • methods
  • inputs (headers, params, body)
  • filter / validation
  • file upload
  • HTTP Exception
  • logging
  • authorisation
  • injectable (repositories, services)

data models

  • ORM
  • query builder
  • relation
  • eager / lazy
  • collection / cursor
  • pagination
  • CRUD

data source

  • different db handler
  • migration
  • seeders
  • factory / mockery
  • caching
  • (external) storage

external API

  • HTTP Client
  • auth client
  • async requests
  • Exception handler
  • retry
  • logging
  • notifications (failures)
  • silent failure
  • rate-limit handler

static

ws

  • messages queue
  • pub/sub
  • channel grouping
  • user-based / role-based

rate limiting

  • oauth2 token
  • external rate limit

queue worker

  • use core functionailty
  • add to queue from any point
  • store serialised in cache / db
  • watch new job / pickup -> work job
  • restart watcher svc
  • auto retry
  • failed jobs management / manual retry
  • notification (failures)
  • logging

cron / scheduler

  • use core functionailty
  • describe using cron / human language
  • auto retry
  • failed cron management / manual retry
  • restart cron svc
  • notification (failures)
  • logging

cli

  • generate
  • use core functionality
  • args / optional args
  • verbosity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment