0109 ~ 0115


# 0109 ~ 0115

# 0109 - SAGA ํŒจํ„ด

# ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌํŒจํ„ด

MSA๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด์„œ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์ €์žฅ์†Œ๋ฅผ ๊ฒฉ๋ฆฌํ•จ์— ๋”ฐ๋ผ ์ด์ „์— ๋ถˆ๊ฑฐ์ง€์ง€ ์•Š์•˜๋˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ถ„์‚ฐ๋œ ์„œ๋น„์Šค์— ๊ฑธ์ณ ๋น„์ฆˆ๋‹ˆ์Šค ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋น„์ฆˆ๋‹ˆ์Šค ์ •ํ•ฉ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋ณด์žฅํ•  ๊ฒƒ์ธ์ง€ ๊ด€ํ•œ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„์‚ฐ๋œ ์„œ๋น„์Šค๋ฅผ ํ•˜๋‚˜์˜ ์ผ๊ด€๋œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ๋Š” ๊ฒƒ์„ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ํŒจํ„ด์ด๋ผ๊ณ  ํ•œ๋‹ค.

# SAGA ํŒจํ„ด

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค๋ผ๋ฆฌ ์ด๋ฒคํŠธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„ ํŠน์ • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ์˜ ์ž‘์—…์ด ์‹คํŒจํ•˜๋ฉด ์ด์ „๊นŒ์ง€์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค์—๊ฒŒ ๋ณด์ƒ(complemetary) ์ด๋ฒคํŠธ๋ฅผ ์†Œ์‹ฑํ•จ์œผ๋กœ์จ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์›์ž์„ฑ(atomicity)์„ ๋ณด์žฅํ•˜๋Š” ํŒจํ„ด์ด๋‹ค.

# [ Choreography based SAGA pattern ]

Choreography-based Saga ํŒจํ„ด์€ ๋ณด์œ ํ•œ ์„œ๋น„์Šค ๋‚ด์˜ ๋กœ์ปฌ ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์™„๋ฃŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰ํ•œ๋‹ค. ๋งŒ์•ฝ ๊ทธ ๋‹ค์Œ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ํŠธ๋žœ์žญ์…˜์ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” app์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๊ณ , ํ•ด๋‹น app์€ ์™„๋ฃŒ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ๋ฐ›๊ณ  ๋‹ค์Œ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ด๋•Œ ์ด๋ฒคํŠธ๋Š” Kafka์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ํ๋ฅผ ํ†ตํ•ด์„œ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ํŒจํ„ด์—์„œ๋Š” ๊ฐ app๋ณ„๋กœ ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ๋กœ์ง์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„์— ํŠธ๋žœ์žญ์…˜์ด ์‹คํŒจํ•˜๋ฉด ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜ ์ทจ์†Œ ์ฒ˜๋ฆฌ๋ฅผ ์‹คํŒจํ•œ app์—์„œ ๋ณด์ƒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰ํ•ด์„œ ๋กค๋ฐฑ์ฒ˜๋ฆฌ๋ฅผ ์‹œ๋„ํ•œ๋‹ค.

  • ๊ตฌ์„ฑํ•˜๊ธฐ ํŽธํ•˜๋‹ค.
  • ํŠธ๋žœ์žญ์…˜์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

# [ Orchestration based SAGA pattern ]

Orchestration-Based Saga ํŒจํ„ด์€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Saga ์ธ์Šคํ„ด์Šค(Manager)๊ฐ€ ๋ณ„๋„๋กœ ์กด์žฌํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์— ๊ด€์—ฌํ•˜๋Š” ๋ชจ๋“  app์€ Manager์— ์˜ํ•ด ์ ์ง„์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ Manager์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๊ณ , ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์ƒ ๋งˆ์ง€๋ง‰ ํŠธ๋žœ์žญ์…˜์ด ๋๋‚˜๋ฉด Manager๋ฅผ ์ข…๋ฃŒํ•ด์„œ ์ „์ฒด ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค. ๋งŒ์•ฝ ์ค‘๊ฐ„์— ์‹คํŒจ์‹œ Manager์—์„œ ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ๋ฐœ๋™ํ•˜์—ฌ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.
ํ•ด๋‹น ํŒจํ„ด์€ ๋ชจ๋“  ๊ด€๋ฆฌ๋ฅผ Manager๊ฐ€ ํ˜ธ์ถœํ•˜๊ธฐ ๋–„๋ฌธ์— ๋ถ„์‚ฐํŠธ๋žœ์žญ์…˜์˜ ์ค‘์•™ ์ง‘์ค‘ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

  • ์„œ๋น„์Šค๊ฐ„์˜ ๋ณต์žก์„ฑ์ด ์ค„์–ด๋“ค์–ด์„œ ๊ตฌํ˜„ ๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.
  • ํŠธ๋žœ์žญ์…˜์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ Manager๊ฐ€ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋กค๋ฐฑํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๋Š” Orchestrator ์„œ๋น„์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธํ”„๋ผ ๊ตฌํ˜„์ด ๋ณต์žกํ•ด์ง„๋‹ค.
Last update: March 2, 2023 23:42
Contributors: jaesungahn91