Frontend Infra Book
  • Why I Wrote This Guide
  • Mock Interviews
  • Development Roadmap
  • Product/Nonfunctional Requirements
  • Technical/Functional Requirements
    • Performance
    • User Experience Tracking
    • Backend Integration
    • Security
    • DevOps
    • Other / Unsorted
  • Design System & Common Components
  • Examples
    • Trading System
  • Topic In Depths
    • Containerization
    • Data Stack
    • Tools and Packages List
  • Common Solutions
  • Success/Failure Stories
    • Comp At Startups
    • Scaling FE Teams - My HOVER Story
  • Other Resources
  • Environment Setup
  • About The Author(s) + Contributing
  • Interviewing for FE
    • Getting The Interview
    • Negotiation Tips
    • How RSU's Work
    • Moving Up in Your Career
    • FAQ
    • Companies
  • Culture
  • What Matters in Company Culture
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Technical/Functional Requirements

Backend Integration

Todo

  • Am I designing Backend? Or Just FE?

  • API

    • Already written? Writing together with BE? Proposing?

    • Protocols: Sockets? REST? GraphQL? GRPC? Mix of each (REST for one time info, Sockets for Stock Prices)

  • Error Handling

    • Retry Mechanism?

    • Messaging to the user

  • Long Async Requests

    • Ex: Buy operation that may take 1+ minutes, chunked buy (buy shares as they become available)

    • Push messaging when operation is complete, email, think about this flow Multi Day operations - clearing of funds (prob email)

  • Interaction with BE

    • Something like OpenAPI/Swagger to sync on documentation/API contract

    • Generating TypeScript Types from OpenAPI

    • Are we synching API versions between releases?

    • Make sure FE is released at same time as corresponding BE Major releases.

    • Minor releases? Breaking API releases?

    • How do we make sure nothing breaks as BE changes?

    • Integration testing strategy

    • Postman

PreviousUser Experience TrackingNextSecurity

Last updated 3 years ago

Was this helpful?