Backend Vision

API v3

A look to our scattered APIs

The BACKEND

cronjobs

workers

api

*staging environment

Meteor Portal

*staging environment

Data services

*staging environment

Zelda

  • GraphQL
  • REST API
    • Callbacks

Not in scope

Lambdas

Returns API?

Icons API?

Instagram Integration API?

And more...

  • cpr-*
  • clean-up-exports
  • corazon-backend-dev-getIntegration (?)
  • dispatch-confirmation_*
  • emailWizard
  • htmlToPdf
  • monitor
  • resizeLogo
  • url-shortener-*
  • write-to-exports
  • and many more...

Lambda still has its use case, but we have to re-evaluate our approach

The problem to solve

  • High entropy
  • No clear ownership
  • Business value scattered all around
    • A lot of power that we could offer to our users
  • Maintenance overhead
  • Ageing backend

Headless

Frontend/s

Command Line Tools

Professional Services

Shops

API

Inspiration

Stripe

Shopify

Github

Our API will not be like Stripe, Shopify, Github...

* not in the short/middle-term

... but they are a reference and we will deliver progressively with the resources we have

A great Engineering team with experience in building APIs

* with more people joining the team

An awesome Product team that can help us with API requirements and priorities

Technical Writers

API Capabilities

Authentication

API

Authorization server

Used by clients to access the API

Authorization

Under discussion. See Design Doc

Basic deployment

Blue-Green deployment

Basic horizontal autoscaling

Basic vertical autoscaling

Advance auto scaling based on metrics

Transition Plan

Current landscape

Modular monolith first

Independent modules

*if it makes sense

Endpoint ownership

Business endpoints

  • Multiple consumers
  • Always owned by a Backend team
  • Public documentation

Frontend-specific endpoints

  • parcelLab's Frontends as sole consumer
  • Developed by a Frontend team in a Backend team codebase
    • System owned by Backend
    • Endpoint owned by Frontend
  • Private documentation
  • Avoid as much as possible
    • Business endpoints should be enough
    • Frontend architecture based on well defined and structure API (not the other way around)

Frontend-specific endpoints

Frontend-specific endpoints (alternative)

*a lot of groundwork is missing

More topics to come

  • Configuration plan (@parcelLab/Architecture)
  • Platform (core and workers) @Josh

Stay tuned: January 12th 2023

Backend Vision 2023 API v3

By Darío Blanco

Backend Vision 2023 API v3

  • 137