Skip to content

Components

This page outlines the purpose and design of each component at a medium level of detail. For more implementation details, refer to each component's own docs.

Authentication

See Authentication Flows on Notion.

Users, Accounts, and Memberships

See Multi-account Design Doc on Notion.

Indexes

API Keys

Integrations

Billing

Console BFF

Handle requests from the Console web client.

Delegates all requests to the appropriate services, sometimes orchestrating multiple calls, and formats the results for users.

Public BFF

Handle requests from other public clients, primarily py-marqo and the Terraform provider.

Only supports the Indexes API, so delegates all requests to the Indexes service.

Service Utils

A shared library of functionality needed by multiple services.

architecture-beta
    group 3p(cloud)[Third Party]
    group ctrl(logos:aws)[Controller]

    service user(logos:chrome)[User]
    service python(logos:python)[Library]

    service stripe(logos:stripe)[Stripe] in 3p

    service web_api(logos:aws-api-gateway)[Web API Gateway] in ctrl
    service public_api(logos:aws-api-gateway)[Public API Gateway] in ctrl

    service cf(logos:aws-cloudfront)[CloudFront] in ctrl
    service web_bucket(logos:aws-s3)[Web Static Bucket] in ctrl
    service web_bff(logos:aws-lambda)[Web BFF] in ctrl



    service ua_svc(logos:aws-lambda)[UsersAccounts Service] in ctrl
    service ua_db(logos:aws-dynamodb)[UsersAccounts Table] in ctrl

    service key_svc(logos:aws-lambda)[API Key Service] in ctrl
    service key_db(logos:aws-dynamodb)[API Key Table] in ctrl

    service int_svc(logos:aws-lambda)[Integrations Service] in ctrl
    service int_db(logos:aws-dynamodb)[Integrations Table] in ctrl

    service index_svc(logos:aws-lambda)[Index Service] in ctrl
    service index_db(logos:aws-dynamodb)[IndexConfig Table] in ctrl

    service auth_svc(logos:aws-lambda)[Auth Service] in ctrl
    service auth_cognito(logos:aws-cognito)[Cognito] in ctrl

    service billing_svc(logos:aws-lambda)[Billing Service] in ctrl

    junction web_j
    junction bff_j
    junction bff_jt
    junction bff_jb


    web_api:R -- L:web_j
    web_j:T -- B:auth_svc
    web_j:R -- L:web_bff
    web_bff:R -- L:bff_j
    web_api:T -- B:cf
    cf:T -- B:web_bucket

    bff_j:T -- B:bff_jt
    bff_jt:R -- L:billing_svc
    bff_j:R -- L:key_svc
    bff_j:B -- T:bff_jb
    bff_jb:R -- L:index_svc
    bff_jb:B -- T:int_svc


    ua_svc:T -- B:ua_db

    auth_svc:T -- B:auth_cognito
    auth_svc:R -- L:ua_svc
    auth_svc:B -- B:key_svc
    key_svc:R -- L:key_db
    index_svc:R -- L:index_db
    int_svc:R -- L:int_db



    web_bff:T -- B:ua_svc
    billing_svc:R -- L:stripe

    user:R -- L:web_api
    python:R -- L:public_api
    user:B -- T:python