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