Files
labFusion/frontend/RESILIENCE.md

2.6 KiB

Frontend Resilience Features

The LabFusion frontend is designed to work gracefully even when backend services are unavailable.

Features

1. Service Status Monitoring

  • Real-time Health Checks: Monitors all backend services every 30 seconds
  • Service Status Banner: Shows current service availability status
  • Automatic Retry: Attempts to reconnect when services come back online

2. Graceful Degradation

  • Fallback Data: Uses sample data when services are unavailable
  • Error Handling: Displays helpful error messages instead of crashes
  • Loading States: Shows loading indicators during data fetching

3. Offline Mode

  • Offline Banner: Clear indication when all services are down
  • Instructions: Step-by-step guide to start backend services
  • Retry Button: Easy way to attempt reconnection

4. Error Recovery

  • Timeout Handling: 5-second timeout for all API calls
  • Connection Error Detection: Distinguishes between different error types
  • User-Friendly Messages: Clear explanations of what's happening

Service Status States

Online

  • All services are running normally
  • No status banner shown
  • Full functionality available

Partial

  • Some services are unavailable
  • Warning banner with service details
  • Limited functionality with fallback data

Offline

  • All backend services are down
  • Offline mode banner with instructions
  • Frontend runs with sample data only

API Configuration

The frontend automatically detects service availability:

// Service URLs (configurable via environment variables)
API_GATEWAY_URL=http://localhost:8080
SERVICE_ADAPTERS_URL=http://localhost:8000
API_DOCS_URL=http://localhost:8083

Development

Running Frontend Only

cd frontend
npm install
npm start

The frontend will start and show offline mode until backend services are started.

Testing Resilience

  1. Start frontend: npm start
  2. Observe offline mode banner
  3. Start backend: docker-compose up -d
  4. Watch automatic reconnection
  5. Stop backend services to test fallback

Error Messages

  • Connection Timeout: "Request timeout - service may be unavailable"
  • Service Error: "Service error: [HTTP status]"
  • Service Unavailable: "Service unavailable - check if backend is running"
  • Unknown Error: "Unknown error occurred"

Benefits

  • Developer Experience: Frontend can be developed independently
  • User Experience: Clear feedback about service status
  • Debugging: Easy to identify which services are having issues
  • Reliability: App doesn't crash when services are down