bff

module
v0.0.0-...-e3c39ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2024 License: MIT

README

BFF: API Gateway for web clients

[!NOTE] This is a BFF service for web clients

HTTP REST API: Implemented using 'chi' for optimal integration and high performance.

Docs

ADR

Architecture

@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml

LAYOUT_WITH_LEGEND()

title C4: Context diagram for bff-link

Person(customer, "Customer", "Uses our service")
Container(api_gateway, "bff-link", "Docker", "Handles incoming user requests and routes them to appropriate services.")
Container_Ext(identity_service, "Identity & User Management", "Docker", "Manages user identities and authentication.")
System_Boundary(bff, "Internal Services") {
    Container_Ext(link_service, "Link", "Docker", "Provides CRUD operations for links.")
    Container_Ext(billing_service, "Billing", "Docker", "Handles billing and payment operations.")
    Container_Ext(rbac_service, "RBAC & ABAC", "Docker", "Manages role-based and attribute-based access control.")
}

Rel(customer, identity_service, "Login/Logout")
Rel_R(customer, api_gateway, "Request /api")
Rel_R(api_gateway, identity_service, "Check token")
Rel(api_gateway, link_service, "Proxy")
Rel(api_gateway, billing_service, "Proxy")
Rel(link_service, rbac_service, "Permission")
Rel(billing_service, rbac_service, "Permission")

SHOW_LEGEND()
@enduml

Directories

Path Synopsis
internal
di
infrastructure/http/api
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL