Skip to main content

Why AxCom?

Under Reviewv0.1.0-alpha
Alpha — Not Production-Ready

AxCom is in early alpha (v0.1.0-alpha). Modules are at different stages of completeness and third-party integrations (payment gateways, shipping providers) have not been tested against live services. See Project Status for a detailed breakdown of what works and what does not.

What is AxCom?

AxCom (ecom-engine) is a modular, compiled commerce backend written in pure Go. It ships as a single static binary with pre-built domain modules - catalog, inventory, cart, orders, payments, shipping, and more - that you enable, disable, or swap through configuration alone.

The engine uses Gin for HTTP routing, pgx for PostgreSQL, the official MongoDB Go driver for MongoDB, and standard library patterns everywhere else. No ORMs, no heavy frameworks.


Why Go for Commerce?

Standard commerce platforms rely on interpreted runtimes (Node.js, PHP) and large framework abstractions. Under peak traffic - flash sales, limited drops - these hit garbage-collection pauses, slow queries, and lock contention.

Go compiles to a native binary with a small memory footprint and predictable latency. The engine starts in milliseconds, handles high concurrency natively via goroutines, and runs anywhere - Docker, bare metal, or a single VPS.


Core Design Principles

  • Strict domain isolation - Each module owns its business logic with zero cross-module imports. Modules communicate through the engine's dependency injection container.
  • Swappable modules - Enable or disable any module in config.yaml. Disabled modules return clear 503 responses on their routes instead of breaking the system.
  • Database flexibility - PostgreSQL is the recommended database for production ecommerce (ACID transactions, relational integrity). MongoDB is fully supported as an alternative for teams already on a MERN stack.
  • Minimal complexity - No auto-magic. Configuration loads in three explicit stages (defaults, YAML, environment variables). Dependencies are declared and validated at startup.

Documentation Guide

These docs are organized into sections that cover different aspects of the engine. Here is a quick map to help you find what you need:

SectionWhat it covers
Project StatusWhat works, what is untested, and what is planned — check here first
Getting StartedLocal setup, configuration, migrations, and adding modules
EngineHow the module system works - lifecycle, dependency injection, dependency graph, repository layer
ModulesPer-module docs - catalog, inventory, cart, orders, payments, shipping
GatewayHTTP routing, authentication, CORS, and rate limiting
InfrastructureDatabase, cache, event bus, and file storage internals
Ops & DeployDocker Compose scenarios from single-VPS to full-stack with monitoring
ObservabilityMetrics, traces, logs, dashboards, and alerts
TestingUnit tests, E2E tests, and load testing
PackagesShared utility packages - errors, validation, ID generation, logging

Start with Quick Setup to get a local instance running, then explore the sections relevant to your work.