Multiple implementations of the same back-end application. The aim is to provide quick, side-by-side comparisons of different technologies (languages, frameworks, libraries) while preserving consistent business logic across all implementations.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.8 KiB

AutoStore Architecture Overview

Layer Boundaries

graph TB
    subgraph PL[Presentation Layer]
        A[StoreController]
        B[AuthController]
    end

    subgraph AL[Application Layer]
        E[AddItem Use Case]
        F[DeleteItem Use Case]
        G[LoginUser Use Case]
        H[GetItem Use Case]
        I[ListItems Use Case]
        J[HandleExpiredItems Use Case]
        K[TaskScheduler]
        L[IItemRepository]
        M[IAuthService]
        N[IOrderService]
        O[ITimeProvider]
        P[IThreadManager]
    end

    subgraph DL[Domain Layer]
        Q[Item]
        R[User]
        S[ItemExpirationPolicy]
    end

    subgraph IL[Infrastructure Layer]
        C[HttpServer]
        D[HttpJwtMiddleware]
        T[FileItemRepository]
        U[FileJwtAuthService]
        V[HttpOrderService]
        W[SystemTimeProvider]
        X[SystemThreadManager]
        Y[CvBlocker]
    end

Component Dependencies

graph LR
    StoreController --> AddItem
    StoreController --> DeleteItem
    StoreController --> GetItem
    StoreController --> ListItems
    StoreController --> IAuthService

    AuthController --> LoginUser

    AddItem --> IItemRepository
    AddItem --> ITimeProvider
    AddItem --> IOrderService
    AddItem --> ItemExpirationPolicy

    DeleteItem --> IItemRepository

    LoginUser --> IAuthService

    GetItem --> IItemRepository

    ListItems --> IItemRepository

    HandleExpiredItems --> IItemRepository
    HandleExpiredItems --> ITimeProvider
    HandleExpiredItems --> IOrderService
    HandleExpiredItems --> ItemExpirationPolicy

    TaskScheduler --> ITimeProvider
    TaskScheduler --> IThreadManager

    IItemRepository --> Item
    IAuthService --> User
    IOrderService --> Item
    ItemExpirationPolicy --> Item
    ItemExpirationPolicy --> ITimeProvider