Skip to content
Maxim Khailo edited this page Jun 7, 2017 · 26 revisions

Welcome to the FoxCommerce Engineering Wiki. Here you can find information about the overall engineering team, as well as the individual projects. Look below to find your way around.

Design Documents

Use Cases

Use Cases

User Docs

User Docs

Architecture

Customer's Simplified View of FoxCommerce Platform

It's good to keep in mind that our customers will understand a simplified version of what's actually happening at FoxComm. They will mostly be interacting with the Store Admin to manage their catalog and merchandising, and their design & dev teams will be building their public storefront, most likely based on the Firebird starter theme.

                                            ╮
                    ┌───────────────────┐   │
┌─────────────┐     │ Public Storefront │   ├ Frontend
│ Store Admin │     └─────────┬─────────┘   │
└──────┬──────┘               │             ╯
       └──────────┬───────────┘
                  │                         ╮
         ┌────────┴────────────┐            │
         │ FoxComm Backend API │            ├ Backend
         └─────────────────────┘            │
                                            ╯

FoxCommerce Platform Architecture

More detail on what's going on behind the scenes.

                                                               ╮
                            ┌──────────────────────────────┐   │
┌─────────────────────┐     │ Public Storefront [Firebird] │   ├ Frontend
│ Store Admin [Ashes] │     └──────────────┬───────────────┘   │
└─────────┬───────────┘                    │                   ╯
          └───────────────┬────────────────┘
                          │
               ┌──────────┴──────────┐                         ╮
               │ API Gateway [nginx] │                         │
               └──────────┬──────────┘                         │
                          │                                    │
             ┌────────────┴────────────┐                       │
      ┌──────┴──────┐         ┌────────┴──────────┐            │
      │ Phoenix API │         │ ElasticSearch API │            ├ Backend
      └──────┬──────┘         └──────────┬────────┘            │
          ╭──┴─╮                         ↑ update indices      │
          │    │     ┌───────┐     ┌─────┴───────┐             │
          │ DB ├────→│ Kafka │────→│ Green River │             │
          │    │     └───────┘     └─────────────┘             │
          ╰────╯                                               ╯

Core FoxCommerce Platform Components

  • Backend

    • phoenix-scala - Our main API that handles the business logic for the customer, merchandising, and order management systems.
    • green-river - Kafka consumer to handle indexing search views and activities into Elasticsearch.
    • middlewarehouse - A lightweight and fast shipping and inventory management service written in Go.
    • isaac - A C++ JWT verification service.
    • solomon - A microservice that handles scopes, claims, roles and permissions, written in Elixir.
    • hyperion - A microservice that handles communication with marketplaces. Only Amazon is available for now. Written in Elixir.
  • Frontend

    • ashes - The Admin UI, written in React.js.
    • api-js - A JavaScript library for interacting with the FoxCommerce API.
    • wings - Shared libraries for FoxCommerce UI code.
  • Infrastructure

    • tabernacle - All of our DevOps tools for deploying the application to both development and production.
  • Integrations

    • messaging - Kafka consumer that handles e-mail notifications through Mailchimp, written in Clojure.
    • hyperion - A microservice that handles requests to Amazon MWS API, written in Elixir.
  • Other