MongoDB Change Streams 및 Atlas Triggers 사용하여 실시간 업데이트를 활용하여 빠르고 안정적인 옴니 채널 오더를 구축하세요.
산업: 소매
제품: MongoDB Atlas, MongoDB Change Streams, MongoDB Atlas Triggers
솔루션 개요
오늘날 고객은 온라인 구매와 함께 온라인 구매와 배송을 동시에 지원하는 온라인 및 오프라인 채널을 활용한 원활한 쇼핑 경험을 기대합니다. 그러나 소매업체는 옴니채널 쇼핑 경험을 지원 하는 기술 솔루션을 구현 데 어려움을 겪고 있습니다. 소매업체는 실시간 가시성을 제공하고, 동적 트래픽 패턴을 처리하며, 모든 고객 터치포인트에서 최신 통합을 가능하게 하는 유연한 시스템이 필요합니다.
이 솔루션은 MongoDB Atlas 사용하여 옴니채널 전자상거래 웹사이트 빌드 하는 방법을 보여줍니다. 이 데모를 통해 사용자는 선호하는 배송 방법(BOPIS 또는 가정 배송)을 선택하고 배송될 때까지 주문 진행 상황을 실시간 추적. Change Streams, Atlas Triggers 및 유연한 문서 모델 등 MongoDB 주요 기능을 활용하여 강력하고 확장 가능한 옴니 채널 순서 지정 시스템을 만드는 방법을 학습 됩니다.
참조 아키텍처
이 솔루션은 MongoDB Change Streams 와 Atlas Triggers 사용하여 여러 애플리케이션에서 실시간 데이터 작업을 활성화 . 아키텍처는 실시간 앱 과 MongoDB Atlas 두 가지 주요 구성 요소로 구성됩니다.
실시간 앱에는 데이터베이스 변경에 대응하는 모든 애플리케이션 (예: 전자상거래, 물류 센터, 창고, 재고 앱)이 포함됩니다.
이 솔루션의 워크플로는 다음과 같습니다.
애플리케이션 의 조치 주문 상태 업데이트 와 같은 데이터 수정을 생성합니다.
이벤트 MongoDB Atlas 의
orders컬렉션 에 등록됩니다.이러한 변경 사항은
oplog.rs컬렉션을 사용하는 oplog에 기록됩니다.Change Streams API 이러한 변경 사항을 모니터링합니다. 컬렉션, 데이터베이스 또는 클러스터 전체 수준에서 변경 사항을 모니터 하고 MongoDB 집계 프레임워크를 사용하여 특정 변경 사항을 필터할 수 있습니다.
아키텍처 요구 사항에 따라 다음을 수행할 수 있습니다.
애플리케이션 측에서 업데이트 수행합니다.
Atlas Functions를 통해 자동화된 작업을 트리거합니다.
이 아키텍처는 다음과 같은 다양한 실제 애플리케이션을 위한 기반을 제공합니다.
실시간 알림: 주문 픽업 준비가 완료되면 고객에게 자동 알림을 제공합니다.
반응형 시스템: 자동 재입고 기능이 있는 스마트 재고 관리
이벤트 기반 아키텍처: 선택적으로 Kafka와 연동하여 실시간 마이크로서비스 동기화를 구현합니다.
데이터 변경 캡처: 시스템 전반에 걸친 상품 가격이 즉각적으로 업데이트됩니다.
실시간 분석: 머신 러닝 모델을 사용하여 즉각적으로 사기 위험을 재계산합니다.
그림 1. 옴니 채널 주문 솔루션 아키텍처
데이터 모델 접근 방식
이 솔루션의 데이터 모델 products 및 orders라는 두 개의 프라이머리 컬렉션을 사용합니다. 각 컬렉션 field: value 형식을 사용하여 저장된 데이터를 조직적으로 표현합니다.
제품 컬렉션
products 컬렉션 다음과 같은 포괄적인 제품 정보를 저장합니다.
ID, 이름, 고유 제품 식별자(예: SKU).
분류 필드(예:
masterCategory,subCategory,articleType).amount및currency필드가 있는 가격 책정을 위한 중첩 객체입니다.자동 보충 상태 및 기본 색상과 같은 제품별 속성입니다.
인벤토리 관련 필드 및 제품 메타데이터
그림 2. products 컬렉션 의 예시 문서
주문 컬렉션
orders 컬렉션 다음을 포함한 주문 세부 정보를 추적합니다.
주문 및 사용자에 대한 고유 식별자입니다.
각 주문에 대한 제품 배열 입니다.
status_history배열 은 타임스탬프로 주문 상태의 진행 상황을 캡처합니다.주문 유형별 차별화(온라인 구매, 저장 수령 및 온라인 구매, 집에서 배송).
주문별 배송 주소입니다.
전달 유형에 따른 상태 워크플로:
BOPIS 주문은 ' 프로세스 중' 또는 '픽업 준비 완료'와 같은 상태를 표시합니다.
가정 배송 주문은 ' 프로세스 중', '배달 준비 완료', '창고에서 픽업', '운송 중', '배달됨' 상태로 진행됩니다.
그림 3. orders 컬렉션 의 예시 문서
솔루션 빌드
이 솔루션은 이 GitHub 리포지토리를 사용합니다. 다음 절차는 데모를 설정하다 방법을 간략하게 설명합니다. 전체 지침 및 구현 세부 정보는 리포지토리의 README를 참조하세요.
데모 데이터베이스 채우기
Atlas 계정 내에서 클러스터 프로비저닝하고 데모에 필요한 데이터로 데이터베이스 채웁니다. mongorestore 를 사용하여 GitHub 리포지토리의 /dump/leafy_popup_store 폴더에 저장된 필요한 덤프 데이터로 데이터베이스를 빠르게 채울 수 있습니다.
주문 상태 트리거 추가
삽입 및 업데이트 이벤트에 대해 orders 컬렉션을 수신하는 데이터베이스 트리거 를 생성합니다. 이렇게 하면 GitHub 리포지토리에서 복사할 수 있는 함수 가 실행됩니다.
이 데모에는 전자상거래 웹사이트 에서 주문하는 고객이 포함되므로 트리거하다 10 초마다 주문 상태를 업데이트 데 필요한 프로세스를 모방하여 주문이 배송됨으로 표시될 때까지 주문 단계를 진행합니다. 시뮬레이션된 프로세스에는 주문을 관리하는 창고 직원, 패키지를 배달하는 우편 서비스 또는 주문을 포장하는 저장 직원이 포함됩니다.
앱 프론트엔드 구성
GitHub 리포지토리 로컬 머신에 복제하고, 환경 변수를 구성하고, 종속성을 설치합니다. 마지막으로 로컬에서 앱 실행 하고 http://localhost:8080/Cart에서 프론트엔드 액세스 .
주요 학습 사항
유연성과 속도: MongoDB의 유연성으로 데이터 구조를 쉽게 조정할 수 있으므로 출시 기간을 단축하고 일관적인 옴니 채널 환경을 경험할 수 있습니다.
실시간 역량: Change Streams 및 Atlas Triggers 와 같은 기능을 통해 주문 추적 및 재고 업데이트와 같은 작업에 필수적인 실시간 데이터 처리 활성화 .
Smart architecture: MongoDB의 확장 가능한 하고 유연한 아키텍처를 사용하면 예비 애플리케이션 계층 없이 Change Streams 및 Atlas Triggers 와 같은 도구를 간단하게 통합할 수 있습니다.
작성자
Angie Guemes, MongoDB
Florencia Arin, MongoDB