Skip to content

Whiteboarding Flow Hub and Spoke Discussion

Pavel Zakatov edited this page Jul 25, 2018 · 2 revisions

Fire and Forget

  • actor -> NB
  • NB -> FT (path, create path, send to TE, respond to NB)
  • FT -> TE
  • TE -> FT
  • TE -> FL
  • TE -> FC
  • FL -> FT (transaction)

Other than the transaction bolt, there is no history of state change, there is no real validation / verifying that something made it all the way through. NO RETRIES. NO CLEANUP. NO Discrepancy checks.

HUB and SPOKE ... control always resides with HUB. HUB should be FT

NB -> FT -> Transaction ID (XID) -> DB w/ State && Flow History tabel FT -> NB w/ XID

LOOP: FT: Checks state of open XID, and "does the right thing"

  • Step[N] - state diagram .. ie timeout (has it stalled) and retry logic
  • Example -
    • HISTORY .. is in DB (neo4j?)
    • HISTORY: "sending commands to switches"
    • (HISTORY..once) send 1 or N-1 commands to FL to install rules on switches ... FL sends a response (async)
    • (HISTORY) FT should receive a message, and presumably verify (ie ask for rules on a switch, or specific rule)
    • (HISTORY) Once all have been confirmed, send the last message to ingress switch on both sides.
    • HISTORY: "verified all switches have rules"
    • HISTORY: "sending flow check"
    • (HISTORY) Finally, do a flow check (data path)
    • (HISTORY) Final HISTORY update
    • (XID TABLE) mark as complete CREATED, STARTED, FINISHED, .. This is a State Machine
    • (HISTORY TABLE) .. some STEP X (or Y?) ... TIMEOUT / RETRY ... TIMEOUT / EXHAUSTED (no more retry) ... SUCCESS / FAILURE .. (created, started (in progress), restarted (? not sure if needed ... it is here to show that action is being taken ... however, it may not be a new state, maybe just a message in the HISTORY table.), finished-success, finish-failure?)
  • Keep in mind UC: FT restart (LCM) ... should be able to resume the request

NB API

  • Get Transaction Status...
  • Get Transaction History (default limit=1)
Clone this wiki locally