로컬 데이터베이스의 스트라이프 미러링(구독, 청구서, 쿠폰 등)은 효율적입니까?
자체 로컬 데이터베이스와 함께 Stripe를 미러링하는 것이 좋은 방법입니까?
API 콜(새로운 플랜 작성, 쿠폰, 구독 등)과 웹 훅(새로운 청구서 또는 과금 생성, 결제 실패)을 모두 사용하여 모든 데이터(문자 그대로 스트라이프 객체와 일치하는 컬럼이 있는 유사한 테이블)를 로컬로 저장하고 보다 빠르게 작업할 수 있습니다.
그렇지 않은 경우 로컬에 저장되는 데이터와 요청되는 데이터는 무엇입니까?
감사해요.
일반적으로 동일한 데이터를 두 곳에 저장하는 것은 좋지 않습니다.데이터 중복을 방지하여 많은 시간을 절약하고 데이터가 동기화되지 않는 등의 문제를 방지할 수 있습니다.
말하자면
- 스트라이프 측에 저장된 데이터는 제어할 수 없습니다.어떤 이유로든 사라지면 곤란합니다.그런 일은 거의 없을 것 같지만, 가장 중요한 정보는 로컬에 저장하는 것이 좋습니다.
내 앱에서는 보통 Stripe의 고객 ID와 사용자가 가입한 요금제를 저장합니다.물론, 사용자가 앱 내에서 무엇을 할 수 있는지를 결정하기 때문에, 저도 코드에 모든 플랜을 가지고 있습니다.
- 퍼포먼스상의 이유로 일부 데이터를 로컬에 저장하는 경우가 있습니다만, 자신의 데이터베이스에 대한 콜이 API 콜보다 빠를 필요는 없습니다.더 중요한 것은 수백 밀리초의 차이가 있어도 사용자는 알아차리지 못한다는 것입니다.그리고 대부분의 사용자는 이러한 데이터(청구서 목록 등)에 매우 드물게 액세스합니다.
Andrei가 말했듯이 데이터 복제 문제에 대해 걱정할 필요가 없다는 것은 좋은 일입니다.대부분의 사용 사례에서 API는 매우 빠릅니다. 그러나 더 빨리 만들어야 할 경우 redis 또는 memcached를 사용하여 임시 캐시를 생성할 수 있습니다.이것은 Stripe API에서 예기치 않은 다운타임이 발생할 경우 특히 중요합니다.
Stripe와 같은 대부분의 SaaS 기업은 추가적인 예방책으로 데이터를 백업할 것을 권장합니다.따라서 Stripe 데이터 중 일부가 실수로 삭제되거나 Salesforce 연락처가 변경되는 경우 등은 다음과 같습니다.백업에서 언제든지 복구할 수 있습니다.또한 Stripe의 데이터가 침해될 가능성이 매우 낮은 경우에도 해당됩니다.
그럴 것 같진 않지만 스스로 조절하지 않으면 절대 모를 거야.캐피털 원은 작년에 해킹을 당했는데 이런 일이 일어날 줄은 꿈에도 몰랐습니다.
지금 설명하시는 전략이 바로 제가 사용하는 전략입니다.
기본적으로 Stripe를 사용하는 것은 쌍방향입니다.요구를 시작할 수 있습니다(예를 들어 신규 고객을 작성할 때), 요청을 시작할 수 있습니다(예를 들어 신용 카드에 장애가 발생하여 가입을 취소할 때).첫 번째 경우 스트라이프 응답(JSON)을 데이터베이스에 저장합니다.두 번째 경우 스트라이프 웹 훅(JSON도 마찬가지)도 데이터베이스에 저장합니다.
DB에 저장할 고객 또는 구독 필드를 선택하지 않기 위해 전체 JSON을 Postgre에 저장합니다.을 JSONB
필드. 성능 오버헤드가 거의 없으며 데이터를 조회하는 것은 매우 간단합니다.
이렇게 하면 두 가지 장점을 모두 얻을 수 있습니다.
- 속도(리모트 데이터가 아닌 로컬 데이터를 읽기 때문에)
- 개발의 용이성(저장하는 스트라이프 데이터에 대해 크게 생각할 필요가 없음)
- 스트라이프 측에서 재해 발생 시 안전
- 데이터는 항상 최신입니다.
도움이 될지도 모르니 기사도 썼어요.https://juliensalinas.com/en/storing-stripe-payment-data-database/
언급URL : https://stackoverflow.com/questions/34969921/is-mirroring-stripe-subscriptions-invoices-coupons-in-your-own-local-data
'programing' 카테고리의 다른 글
WP 'body' 클래스에 Woocommerce 상위 범주 추가 (0) | 2023.03.21 |
---|---|
AngularJS 조건부 ng-disabled가 다시 활성화되지 않음 (0) | 2023.03.21 |
초기 vue.js/vue-router 로드 시 모든 서버 측 데이터를 로드하는 방법 (0) | 2023.03.21 |
스프링 부트 복수 데이터 소스 (0) | 2023.03.21 |
npm 링크에 연결된 패키지가 업데이트되지 않습니다. (0) | 2023.03.16 |