Skip to content

Architecture Overview

flowchart TB
  subgraph "Frontend Layer"
      Dashboard[Dashboard - Vue 3]
      DevPortal[Developer Portal]
      WC[Web Components]
  end
  
  subgraph "Gateway Layer"
      API[Gateway API - Laravel]
      Auth[OAuth Server]
      Integrations[Integration Engine]
  end
  
  subgraph "Processing Layer"
      Kafka[Message Queue]
      GoService[Go Microservice]
      Workers[Background Workers]
  end
  
  subgraph "Data Layer"
      Postgres[(PostgreSQL)]
      Redis[(Redis Cache)]
  end
  
  subgraph "External Systems"
      Shopify[Shopify]
      Amazon[Amazon]
      WooCommerce[WooCommerce]
      OtherCarts[Other Carts...]
      WMS[WMS]
  end
  
  Dashboard --> API
  DevPortal --> API
  WC --> API
  
  API --> Auth
  API --> Integrations
  API --> Postgres
  API --> Redis
  API --> Kafka
  
  Kafka --> GoService
  GoService --> Workers
  Workers --> API
  
  Integrations <--> Shopify
  Integrations <--> Amazon
  Integrations <--> WooCommerce
  Integrations <--> OtherCarts
  API <--> WMS

Middleware: auth:api

Used by the Dashboard for administrative operations.

Authorization: Bearer {admin_token}
sequenceDiagram
  participant Dev as Developer
  participant Dash[Dashboard]
  participant API[IONFLOW API]
  participant WC as WebComponent
  participant User as End User
  
  Dev->>Dash: Create OAuth App
  Dash->>API: Register App
  API-->>Dash: Client ID & Secret
  
  Dev->>API: Request Token (client_credentials)
  API-->>Dev: Access Token (scoped)
  
  Dev->>API: Create Account (end-user)
  API-->>Dev: Account ID
  
  Dev->>API: Generate Intent Token
  API-->>Dev: Intent Token (10 min TTL)
  
  Dev->>WC: Initialize with Intent Token
  WC->>API: Operate on Account
  User->>WC: Interact
  WC->>API: API calls with Intent Token
sequenceDiagram
  participant Cart as E-commerce Cart
  participant GW as Gateway
  participant KF as Kafka
  participant GO as Go Service
  participant WMS[WMS]
  
  Cart->>GW: Webhook: New Order
  GW->>GW: Validate & Map Order
  GW->>KF: Publish: order.created
  GW-->>Cart: 200 OK
  
  KF->>GO: Consume: order.created
  GO->>GO: Process Order
  GO->>WMS: Create Order in WMS
  WMS-->>GO: Order Created
  GO->>KF: Publish: order.processed
  
  KF->>GW: Consume: order.processed
  GW->>Cart: Update Order Status
DecisionChoiceRationale
API FrameworkLaravelEcosystem, OAuth support, rapid development
FrontendVue 3Composition API, TypeScript support, team expertise
MicroserviceGoPerformance, concurrency, small binary size
Message QueueKafkaThroughput, durability, replay capability
DatabasePostgreSQLJSONB support, reliability, extensions
CacheRedisSpeed, pub/sub, session storage

Continue to Tech Stack →