/solomon

Primary LanguageTypeScript

solomon

Progress Progress

Solomon is a simple web app to support product/item/merchandise gallery.

Current covered features are
1. search product by any keyword
2. filter product by price range
3. pagination
4. add / update product

Technical Stack

Built with: Go Clean Architecture Docker Postgres Redis ElasticSearch NSQ Message Queue

System Architecture

block-beta
  columns 2
  block:layer1:2
    columns 2
    uct4("Front End Layer"):2
    ProductListPage ProductDetailPage
    ProductAddPage ProductUpdatePage
  end
  block:groupusecase:2
    block:group1a:1
        columns 1
        uct("HTTP API")
        Filter/Search
        Add
        Update
    end
    %%   space:2
    block:group1b:1
        columns 1
        uct1("Event Bus API")
        InsertToSearchEngine
        UpdateToSearchEngine
        space:2
    end
  end

  block:group2:2
    columns 2
    uct2("Infrastructure Layer"):2
    Docker
    %% pg[("PostgreSQL")] Redis[("Redis")]:1
    PostgreSQL Redis
    ElasticSearch:1
    MQ["Event Bus"]:1
    MonitoringTool
end

class uct BT
class uct1 BT
class uct2 BT
class uct3 BT
class uct4 BT
classDef BT stroke:transparent,fill:transparent,font:center
Loading

Code Architecture

There are no backward arrows from inner to outer layer image