TODO: General multi-tenancy requirements TODO: Multi-tenant data access layer
Hybrid multi-tennant sharding
TODO: Replica requiremnts TODO: table/row lock dangers???
DB migrations should take in account that there can be two versions of the same service running in the same time. For example: Never remove columns which the old versions needs before every instance of service is rolled to a new version. In practice this means that non-backward-compatible migrations need to be done in multiple phases.
TODO: some tips/links?
TODO: Liveliness/readiness probes
Implement DB, kafka checks
/metrics endpoint to every service. There should be implementations to most of popular languages/frameworks.
12-factor app? .dot files?
TODO OIDC, JWT, link to actual authn/authz doc
TODO OPA sidecar/node instance??, link to actual authn/authz doc
TODO 12-factor app style?
TODO: Kubernetes CoreDNS
TODO: Cloud provider
TODO fluentd, EFK
Audit + errors, Optional debug, Logs to stderr/stdout
Surrogate-Control cache headers should be used to tell Fastly CDN that API responses can be cached. Header is stripped from the browser output.
Cache-Control can be used if response is something that browser should also cache. See Cache-Control. Be extra careful with the browser cache as it's hard to control.
Note that explicit purge from CDN cache can be done if CDN caches are set to be long living. TODO: general event-driven service for CDN purges.
For more information, see Fastly documentation about caching at the edge.
Main responsible for microservice compression should be CDN and/or API gateway, or in the future, service mesh proxy layer (Envoy,Linkerd, etc) if there is any.
Current problem with efficient brotli compression is that it's not widely supported. Waiting some resolution of either of these issues: