AdSense

網頁

2023/4/10

系統設計 遠端資源狀態一致性問題 - 本地記錄已建立但網路失效

遠端資源是指系統外的資源,例如另一個服務的資料,或是雲端資源等。


在本地紀錄建立後(狀態為「建構中(building)」)並向遠端發起建立請求時出現網路錯誤的狀況。



plantuml

@startuml
participant client
participant app 
database    db
participant remote
skinparam sequenceMessageAlign center
skinparam ParticipantPadding 50

client ->> app: create request
activate app
app -->> client: accepted
app -> db : CREATE record\nwith state 'building'
activate db
db -->> app : success
deactivate db
|||
app -[#red]>x remote : CREATE resource
note right : network failure
activate remote
remote -->> app : failed
deactivate remote
|||
app -> db : UPDATE record state\n to 'create-failed'
activate db
db -->> app : success
deactivate db
app ->> client: failed message
deactivate app
note over db: record state is 'create-failed'
@enduml

相對單純的狀況,將記錄狀態更新為「建立失敗(created-failed)」即可。留待使用者自行手動刪除。

沒有留言:

AdSense