issues
search
getElementsByName
/
tmp-doc
0
stars
0
forks
source link
workflow (distributed transaction)
#24
Open
getElementsByName
opened
3 years ago
getElementsByName
commented
3 years ago
BPMN workflow engine
https://github.com/flowable/flowable-engine
https://camunda.com/
https://www.activiti.org/
process manager (orchestration)
https://zeebe.io/
https://github.com/uber/cadence
https://github.com/holunda-io/axon-camunda
https://docs.spring.io/spring-statemachine/docs/current/reference/
getElementsByName
commented
3 years ago
최초 요청이 http
transactional outbox pattern
event 발행용 table을 따로 두고 비지니스 처리와 이벤트 발행을 하나의 transaction으로 구현
event 발행용을 CDC로 전달 받음 (예: kafka connect - debezium)
kafka process
at least once
consuming -> DB -> producing -> consumer commit
with kafka transaction of producer
exactly once (best efforts 1PC)
same broker (producer / consumer)
sendOffsetsToTransaction
DB commit은 분리되어 있음
exactly once semantic (with kafka stream)
kafka state에 비지니스 결과를 저장 (
updateState()
) -> kafka connect를 통해 DB로 저장
BPMN workflow engine
process manager (orchestration)