Avatar
1
Cesc Nguyễn Beginner
Cesc Nguyễn Beginner
Event Sourcing Pattern
Chào mọi người, em đang tìm hiểu về event sourcing và có thắc mắc như sau ạ. Khi số lượng các event trong database quá nhiều, thì mình làm cách nào để có thể tối ưu hóa thời gian thực hiện câu query trong bảng đó ạ. Cảm ơn mọi người
  • Answer
microservice backend
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
Anh nhớ lần cuối anh làm kiểu dùng database này là anh có 1 bảng lưu các event gửi đến kiểu này:

OrderEvent {
	long eventId (auto increment),
	long userId,
	long orderId,
	enum status
}

Thì anh sẽ dùng 1 thread duy nhất để query liên tục vào bảng event này và theo latest eventId kiểu này:

long latestEventId = x;
while(true) {
	Thread.sleep(period);
	List events = getLatestOrderEventsExclusive(latestEventId);
	latestEventId = events.last().eventId;	
}

Như vậy nó rất là nhanh em ạ.

  • 1
  • Reply