Skip to content
Merged

Dev #317

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ Pooli의 핵심 도메인인 **'실시간 데이터(트래픽) 차감 및 공
---

### **📌 1. 실시간 스트림 처리 (Event-Driven Architecture)**

![image.png](attachment:8a8f1810-378a-4af2-a82b-90bf5a19a05d:image.png)
<img width="1546" height="331" alt="image" src="https://github.com/user-attachments/assets/c9edb463-74e7-4276-abff-2ab48e7003e6" />

```yaml
[ 데이터 사용 이벤트 유입 (Stream) ]
Expand Down Expand Up @@ -129,9 +128,11 @@ Pooli의 핵심 도메인인 **'실시간 데이터(트래픽) 차감 및 공

트래픽 차감은 TrafficDeductOrchestratorService를 중심으로 **개인풀 우선 전략**을 따릅니다. 다중 인스턴스 환경에서의 동시성 이슈를 원천 차단하기 위해 원자성(Atomicity)이 보장되는 **Redis Lua Script**를 활용합니다.

![image.png](attachment:841655f0-0928-4f51-b914-361bd63563a5:image.png)
<img width="2048" height="777" alt="image" src="https://github.com/user-attachments/assets/e2e3fc12-774c-4182-a7a5-c4f35e32e9cd" />


<img width="943" height="676" alt="image" src="https://github.com/user-attachments/assets/62792742-596e-4cf3-b9ea-0a2e85afef72" />

![image.png](attachment:9aba6ad8-141a-4003-bbed-05d8dddb6a5a:image.png)

1. **개인 데이터 우선 연산 (`INDIVIDUAL`):** 요청된 트래픽(예: 500MB)을 먼저 사용자의 개인 데이터 풀에서 차감 시도합니다.
2. **잔여량(Residual) 위임:** 개인 풀 잔여량이 부족해 `NO_BALANCE` 상태가 반환되면, 미처리된 잔여 트래픽을 계산합니다.
Expand Down
Loading