ā§Ļā§Š āĻŽā§‡, ⧍ā§Ļ⧍ā§Ģ¡7 āĻŽāĻŋāύāĻŋāϟ āĻĒāĻĄāĻŧāϤ⧇

Stripe-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ-āφāϧāĻžāϰāĻŋāϤ āĻŦāĻŋāϞāĻŋāĻ‚: āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ

Stripe-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ-āφāϧāĻžāϰāĻŋāϤ āĻŦāĻŋāϞāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻāĻŦāĻ‚ āϰāĻŋāĻ•āύāϏāĻŋāϞāĻŋāϝāĻŧ⧇āĻļāύ āĻĻāϰāĻ•āĻžāϰāĨ¤ āĻāĻ•āϟāĻŋ āϏāϰāϞ āĻ¸ā§āĻ•āĻŋāĻŽāĻž, āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĢā§āϞ⧋, āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āĻ“ āĻĄāĻžāĻŦāϞ-āĻ•āĻžāωāĻ¨ā§āϟāĻŋāĻ‚ āϏāĻŽāĻžāϧāĻžāύ āĻļāĻŋāϖ⧁āύāĨ¤

Stripe-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ-āφāϧāĻžāϰāĻŋāϤ āĻŦāĻŋāϞāĻŋāĻ‚: āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ

āφāĻĒāύāĻŋ āϝāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻŦāĻžāύāĻžāĻšā§āϛ⧇āύ (āĻāĻŦāĻ‚ āϕ⧇āύ āĻāϟāĻŋ āϭ⧇āϙ⧇ āĻĒāĻĄāĻŧ⧇)\n\nāĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦāĻŋāϞāĻŋāĻ‚ āĻļā§‹āύāĻžāϝāĻŧ āϏāĻšāϜ: āĻāĻ•āϟāĻŋ āĻ—ā§āϰāĻžāĻšāĻ• āϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āϛ⧇ āĻŽāĻžāĻĒ⧁āύ, āĻŽā§‚āĻ˛ā§āϝāϗ⧁āĻŖ āĻ•āϰ⧁āύ, āĻāĻŦāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻļ⧇āώ⧇ āϚāĻžāĻ°ā§āϜ āĻ•āϰ⧁āύāĨ¤ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻšāĻŋāϏāĻžāĻŦ āϰāĻžāĻ–āĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦāĻžāύāĻžāĻšā§āϛ⧇āύāĨ¤ āĻāϟāĻŋ āϏāĻ āĻŋāĻ• āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇ āĻāĻŽāύ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇āĻ“ āϝāĻ–āύ āĻĄā§‡āϟāĻž āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏ⧇, āĻŦāĻžāϰāĻŦāĻžāϰ āφāϏ⧇, āĻŦāĻž āĻ•āĻ–āύāĻ“ āφāϏ⧇ āύāĻžāĨ¤\n\nāĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āĻšā§‡āĻ•āφāωāϟ āĻŦāĻž āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄā§‡ āϘāĻŸā§‡ āύāĻžāĨ¤ āϤāĻžāϰāĻž āϘāĻŸā§‡ āĻŽāĻŋāϟāĻžāϰāĻŋāĻ‚ āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āφāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāϏ⧇āϰ āϏāĻ™ā§āϗ⧇ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇āύ, "āĻāχ āχāύāĻ­āϝāĻŧ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āϕ⧇āύ", āϤāĻžāĻšāϞ⧇ āĻļ⧇āώāĻĒāĻ°ā§āϝāĻ¨ā§āϤ āφāĻĒāύāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϚāĻžāĻ°ā§āϜ, āĻ•āĻŽ āϚāĻžāĻ°ā§āϜ, āĻŦāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻšāĻžāϰāĻžāĻŦ⧇āύāĨ¤\n\nāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻŋāϞāĻŋāĻ‚ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻžāύ⧁āĻŽā§‡āϝāĻŧ āωāĻĒāĻžāϝāĻŧ⧇ āϭ⧇āϙ⧇ āĻĒāĻĄāĻŧ⧇: āφāωāĻŸā§‡āĻœā§‡āϰ āĻĒāϰ⧇ āχāϭ⧇āĻ¨ā§āϟ āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āϰāĻŋāĻŸā§āϰāĻžāχāϗ⧁āϞ⧋ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏāĻž āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻŽā§‹āϟ āĻ—āĻŖāύāĻž āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ, āĻŦāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ āύ⧇āχ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻŽāĻŋāϞāĻŋāϝāĻŧ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ āύāĻžāĨ¤\n\nStripe āĻŽā§‚āĻ˛ā§āϝ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ, āχāύāĻ­āϝāĻŧ⧇āϏ, āĻŸā§āϝāĻžāĻ•ā§āϏ, āĻāĻŦāĻ‚ āϏāĻ‚āĻ—ā§āϰāĻšā§‡ āϚāĻŽā§ŽāĻ•āĻžāϰāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Stripe āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āĻŸā§‡āϰ āϰ āĻ•Usage āĻ•āĻžāρāϚāĻž āĻĄā§‡āϟāĻž āϜāĻžāύ⧇ āύāĻž āϝāϤāĻ•ā§āώāĻŖ āύāĻž āφāĻĒāύāĻŋ āϏ⧇āϟāĻŋ āĻĒāĻžāĻ āĻžāύāĨ¤ āĻāϰ āĻĢāϞ⧇ āĻāĻ•āϟāĻŋ āϏ⧋āĻ°ā§āϏ-āĻ…āĻĢ-āĻŸā§āϰ⧁āĻĨ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ: Stripe āĻ•āĻŋ āϞ⧇āϜāĻžāϰ, āύāĻžāĻ•āĻŋ āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϞ⧇āϜāĻžāϰ āϝāĻž Stripe āĻĒā§āϰāϤāĻŋāĻĢāϞāĻŋāϤ āĻ•āϰ⧇?\n\nāĻ…āύ⧇āĻ• āϟāĻŋāĻŽā§‡āϰ āϜāĻ¨ā§āϝ, āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦāĻŋāĻ­āĻžāϜāύ āĻšāϞ⧋:\n\n- āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧋āĻ°ā§āϏ-āĻ…āĻĢ-āĻŸā§āϰ⧁āĻĨāĨ¤\n- Stripe āĻšāϞ⧋ āϝāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āĻ“ āĻĒ⧇āĻŽā§‡āĻ¨ā§āϟ āĻšāϝāĻŧ⧇āϛ⧇ āϤāĻžāϰ āϏ⧋āĻ°ā§āϏ-āĻ…āĻĢ-āĻŸā§āϰ⧁āĻĨāĨ¤\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āφāĻĒāύāĻŋ "API āĻ•āϞ" āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰ⧇āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•āϞ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϰ āχāωāύāĻŋāĻ• āϕ⧀ āϏāĻš āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āχāύāĻ­āϝāĻŧ⧇āϏ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āωāĻĒāϝ⧁āĻ•ā§āϤ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āϟāĻžāϞāĻŋ āĻ•āϰ⧇āύ āϝ⧇āϗ⧁āϞ⧋ āĻāĻ–āύāĻ“ āĻŦāĻŋāϞ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ, āϤāĻžāϰāĻĒāϰ Stripe āχāύāĻ­āϝāĻŧ⧇āϏ āφāχāĻŸā§‡āĻŽ āϤ⧈āϰāĻŋ āĻŦāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧇āύāĨ¤ āϝāĻĻāĻŋ āχāύāĻœā§‡āĻļāύ āϰāĻŋāĻŸā§āϰāĻžāχ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĻ⧁āĻŦāĻžāϰ āφāϏ⧇, āφāχāĻĄā§‡āĻŽā§āĻĒāĻŸā§‡āύāϏāĻŋ āύāĻŋāϝāĻŧāĻŽ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟāϕ⧇ āύāĻŋāϰ⧀āĻš āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤\n\n## āĻŸā§‡āĻŦāĻŋāϞ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āφāϗ⧇ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āϝāĻž āύ⧇āĻ“āϝāĻŧāĻž āĻĻāϰāĻ•āĻžāϰ\n\nāĻŸā§‡āĻŦāĻŋāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āφāϗ⧇ āϏ⧇āχ āϏāĻ‚āĻœā§āĻžāĻžāϗ⧁āϞ⧋ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύ āϝāĻž āĻĒāϰ⧇ āĻŦāĻŋāϞāĻŋāĻ‚ āĻ•āĻŋ āĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āϝ⧋āĻ—ā§āϝ āĻĨāĻžāĻ•āĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— "āϰāĻšāĻ¸ā§āϝāĻŽāϝāĻŧ āχāύāĻ­āϝāĻŧ⧇āϏ āĻŦāĻžāĻ—" āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ āύāĻŋāϝāĻŧāĻŽ āĻĨ⧇āϕ⧇ āφāϏ⧇, āĻ–āĻžāϰāĻžāĻĒ SQL āĻĨ⧇āϕ⧇ āύāϝāĻŧāĨ¤\n\nāĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻŋ āϝāĻž āϚāĻžāĻ°ā§āϜ āĻ•āϰ⧇āύ āϏ⧇āϟāĻŋāϰ āχāωāύāĻŋāϟ āĻ āĻŋāĻ• āĻ•āϰ⧁āύāĨ¤ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āĻŦ⧇āϛ⧇ āύāĻŋāύ āϝāĻž āĻŽāĻžāĻĒāϤ⧇ āϏāĻšāϜ āĻāĻŦāĻ‚ āϤāĻ°ā§āĻ• āĻ•āϰāϤ⧇ āĻ•āĻ āĻŋāύāĨ¤ "API āĻ•āϞ" āϰāĻŋāĻŸā§āϰāĻžāχ, āĻŦā§āϝāĻžāϚ āĻ…āύ⧁āϰ⧋āϧ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āĻ•āĻžāϰāϪ⧇ āϜāϟāĻŋāϞ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ "āĻŽāĻŋāύāĻŋāϟ" āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒ⧇āϰ āϏāĻŽāĻ¸ā§āϝāĻžāϝāĻŧ āĻĒāĻĄāĻŧ⧇āĨ¤ "GB"-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ (GB āĻŦāύāĻžāĻŽ GiB) āĻāĻŦāĻ‚ āĻŽāĻžāĻĒāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋ (āĻ—āĻĄāĻŧ āĻŦāύāĻžāĻŽ āĻĒāĻŋāĻ•) āϞāĻžāĻ—āĻŦ⧇āĨ¤\n\nāĻĒāϰāĻŦāĻ°ā§āϤ⧀, āϏ⧀āĻŽāĻžāύāĻž (boundaries) āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āϜāĻžāύāĻžāϤ⧇ āĻšāĻŦ⧇ āĻāĻ•āϟāĻŋ āχāϭ⧇āĻ¨ā§āϟ āϕ⧋āύ āωāχāĻ¨ā§āĻĄā§‹āϰ āĻ…āĻ‚āĻļāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĒā§āϰāϤāĻŋ āϘāĻ¨ā§āϟāĻž, āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ, āĻĒā§āϰāϤāĻŋ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ, āύāĻžāĻ•āĻŋ āĻ—ā§āϰāĻžāĻšāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āĻ—āĻŖā§āϝ āĻšāĻšā§āϛ⧇? āĻ—ā§āϰāĻžāĻšāĻ• āĻŽāĻžāĻā§‡āĻŽāĻ§ā§āϝ⧇ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰāϞ⧇ āĻ•āĻŋ āωāχāĻ¨ā§āĻĄā§‹ āĻ­āĻžāĻ— āĻ•āϰāĻŦ⧇āύ āύāĻžāĻ•āĻŋ āĻĒ⧁āϰ⧋ āĻŽāĻžāϏ⧇ āĻāĻ• āĻŽā§‚āĻ˛ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻŦ⧇āύ? āĻāχ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤāϗ⧁āϞ⧋ āχāϭ⧇āĻ¨ā§āϟ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŽā§‹āϟ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻžāϰ āύāĻŋāϝāĻŧāĻŽ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤\n\nāĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āϕ⧋āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϕ⧋āύ āϤāĻĨā§āϝ⧇āϰ āĻŽāĻžāϞāĻŋāĻ• āĻšāĻŦ⧇ āϤāĻž āĻ āĻŋāĻ• āĻ•āϰ⧁āύāĨ¤ Stripe-āϏāĻš āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻšāϞ⧋: āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻ‰ā§ŽāĻĒāĻ¨ā§āύ āĻŸā§‹āϟāĻžāϞāϗ⧁āϞ⧋āϰ āĻŽāĻžāϞāĻŋāĻ•, āφāϰ Stripe āχāύāĻ­āϝāĻŧ⧇āϏ āĻ“ āĻĒ⧇āĻŽā§‡āĻ¨ā§āϟ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ⧇āϰ āĻŽāĻžāϞāĻŋāĻ•āĨ¤ āĻāχ āĻĒāĻĻā§āϧāϤāĻŋ āϤāĻ–āύ āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇ āϝāĻ–āύ āφāĻĒāύāĻŋ āχāϤāĻŋāĻšāĻžāϏ āύ⧀āϰāĻŦ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰ⧇āύ āύāĻžāĨ¤ āφāĻĒāύāĻŋ āϏāĻ‚āĻļā§‹āϧāύāϗ⧁āϞ⧋ āύāϤ⧁āύ āĻāĻ¨ā§āĻŸā§āϰāĻŋāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻŽā§‚āϞ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ…āϟ⧁āϟ āϰāĻžāĻ–āĻŦ⧇āύāĨ¤\n\nāĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ…āύāύ⧇āϝ⧋āĻ—ā§āϝ āύāĻŋāϝāĻŧāĻŽ/schema āϏāĻšāϜ āϰāĻžāĻ–āϞ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇:\n\n- Traceability: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻŋāϞ⧇ āĻ•āϰāĻž āχāωāύāĻŋāϟ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻŸā§‡āĻ•āύāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āϝ⧋āĻ— āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤\n- Auditability: āφāĻĒāύāĻŋ āĻ•āϝāĻŧ āĻŽāĻžāϏ āĻĒāϰ⧇ āϕ⧇āύ āϚāĻžāĻ°ā§āϜ āĻšāϝāĻŧ⧇āϛ⧇ āϤāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤\n- Reversibility: āϭ⧁āϞāϗ⧁āϞ⧋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻĻāĻŋāϝāĻŧ⧇ āĻ āĻŋāĻ• āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤\n- Idempotency: āĻāĻ•āχ āχāύāĻĒ⧁āϟ āĻĻ⧁āχāĻŦāĻžāϰ āĻ—ā§‹āύāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤\n- Clear ownership: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĢā§āϝāĻžāĻ•ā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻžāϧ⧀āύāĨ¤\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āφāĻĒāύāĻŋ āϝāĻĻāĻŋ "āĻĒāĻžāĻ āĻžāύ⧋ āĻŽā§‡āϏ⧇āϜ" āĻāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāϞ āĻ•āϰ⧇āύ, āϤāĻŦ⧇ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāύ āϰāĻŋāĻŸā§āϰāĻžāχāϗ⧁āϞ⧋ āĻ—āĻŖā§āϝ āĻšāĻŦ⧇ āĻ•āĻŋ āύāĻž, āĻŦā§āϝāĻ°ā§āĻĨ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻ—ā§‹āύāĻž āĻšāĻŦ⧇ āĻ•āĻŋ āύāĻž, āĻāĻŦāĻ‚ āϕ⧋āύ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āϜāϝāĻŧā§€ (āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϏāĻŽāϝāĻŧ āĻŦāύāĻžāĻŽ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻŽāϝāĻŧ)āĨ¤ āϞāĻŋāϖ⧇ āϰāĻžāϖ⧁āύ, āϤāĻžāϰāĻĒāϰ āχāϭ⧇āĻ¨ā§āϟ āĻĢāĻŋāĻ˛ā§āĻĄ āĻ“ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ⧇ āĻāύāϕ⧋āĻĄ āĻ•āϰ⧁āύ, āĻ•āĻžāϰ⧋ āĻ¸ā§āĻŽā§ƒāϤāĻŋāϤ⧇ āύāĻž āϰ⧇āϖ⧇āĨ¤\n\n## āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻšāϜ āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ\n\nāĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦāĻŋāϞāĻŋāĻ‚ āϏāĻšāϜ āϝāĻ–āύ āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āĻšāĻŋāϏāĻžāĻŦāϰāĻ•ā§āώāĻžāϰ āĻŽāϤ āϧāϰ⧇ āύ⧇āύ: āĻ•āĻžāρāϚāĻž āϤāĻĨā§āϝ append-only, āĻāĻŦāĻ‚ āĻŸā§‹āϟāĻžāϞ āĻĄā§‡āϰāĻžāχāĻ­āĻĄāĨ¤ āĻāχ āĻāĻ•āϟāĻžāχ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻŦāĻŋāϤāĻ°ā§āĻ• āϰ⧋āϧ āĻ•āϰ⧇ āĻ•āĻžāϰāĻŖ āφāĻĒāύāĻŋ āϏāĻŦāϏāĻŽāϝāĻŧ āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āϝ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž āϕ⧋āĻĨāĻž āĻĨ⧇āϕ⧇ āĻāϏ⧇āϛ⧇āĨ¤\n\nāĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻļ⧁āϰ⧁ āĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻĒāĻžāρāϚāϟāĻŋ āĻŽā§‚āϞ āĻŸā§‡āĻŦāĻŋāϞ āĻĨāĻžāϕ⧇ (āύāĻžāĻŽ āĻ­āĻŋāĻ¨ā§āύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇):\n\n- customer: āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ customer id, Stripe customer id, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ, āĻŦ⧇āϏāĻŋāĻ• āĻŽā§‡āϟāĻžāĻĄāĻžāϟāĻžāĨ¤\n- subscription: āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ subscription id, Stripe subscription id, āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻĒā§āĻ˛ā§āϝāĻžāύ/āĻĻāĻžāĻŽ, start/end āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒāĨ¤\n- meter: āφāĻĒāύāĻŋ āĻ•āĻŋ āĻŽāĻžāĻĒ⧇āύ (API āĻ•āϞ, āϏ⧀āϟ, āĻ¸ā§āĻŸā§‹āϰ⧇āϜ GB-āϘāĻ¨ā§āϟāĻž)āĨ¤ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ meter key, āχāωāύāĻŋāϟ, āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻ•āϰ⧇ (sum, max, unique) āϰāĻžāĻ–āĻŦ⧇āύāĨ¤\n- usage_event: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāϰāĻŋāĻŽāĻžāĻĒāĻŋāϤ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϰāĻŋāĨ¤ customer_id, subscription_id (āϝāĻĻāĻŋ āϜāĻžāύāĻž āĻĨāĻžāϕ⧇), meter_id, quantity, occurred_at (āϘāϟāύāĻžāϰ āϏāĻŽāϝāĻŧ), received_at (āφāĻĒāύāĻŋ āϝāĻ–āύ āχāύāϗ⧇āĻ¸ā§āϟ āĻ•āϰ⧇āϛ⧇āύ), source (app, batch import, partner), āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ external key āĻĄā§‡āĻĄā§āĻĒ āϜāĻ¨ā§āϝ āϰāĻžāϖ⧁āύāĨ¤\n- usage_aggregate: āĻ‰ā§ŽāĻĒāĻ¨ā§āύ āĻŸā§‹āϟāĻžāϞ, āϏāĻžāϧāĻžāϰāĻŖāϤ customer + meter + āϟāĻžāχāĻŽ āĻŦāĻžāĻ˛ā§āϕ⧇āϟ (āĻĻāĻŋāύ āĻŦāĻž āϘāĻŖā§āϟāĻž) āĻāĻŦāĻ‚ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€āĨ¤ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āϏāĻžāĻŽ āĻ…āĻ™ā§āĻ• āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ version āĻŦāĻž last_event_received_at āϰāĻžāϖ⧁āύ āĻĒ⧁āύāσāĻšāĻŋāϏāĻžāĻŦ āϏāĻŽāĻ°ā§āĻĨāύ⧇āĨ¤\n\nusage_event āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧀āϝāĻŧ (immutable) āϰāĻžāϖ⧁āύāĨ¤ āĻĒāϰ⧇ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āϭ⧁āϞ āϖ⧁āρāĻœā§‡ āĻĒāĻžāύ, āϤāĻ–āύ āχāϤāĻŋāĻšāĻžāϏ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻļā§‹āϧ⧀ (compensating) āχāϭ⧇āĻ¨ā§āϟ āϞāĻŋāϖ⧁āύ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻŦāĻžāϤāĻŋāϞ⧇āϰ āϜāĻ¨ā§āϝ -3 āϏ⧀āϟ)āĨ¤\n\nāĻ…āĻĄāĻŋāϟ āĻ“ āĻŦāĻŋāϤāĻ°ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻ…āύāĻ¨ā§āϤāĻ•āĻžāϞ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϤāĻŦ⧇ āĻ…āĻ¨ā§āϤāϤ āφāĻĒāύāĻžāϰ āĻŦāĻŋāϞāĻŋāĻ‚ āϞ⧁āĻ•āĻŦā§āϝāĻžāĻ• āωāχāĻ¨ā§āĻĄā§‹ āĻāĻŦāĻ‚ āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ/āĻŦāĻŋāϤāĻ°ā§āĻ• āωāχāĻ¨ā§āĻĄā§‹ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϰāĻžāϖ⧁āύāĨ¤\n\nāĻ‰ā§ŽāĻĒāĻ¨ā§āύ āĻŸā§‹āϟāĻžāϞ āφāϞāĻžāĻĻāĻž āϰāĻžāϖ⧁āύāĨ¤ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟāϏ āχāύāĻ­āϝāĻŧ⧇āϏ āĻ“ āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻĻā§āϰ⧁āϤ, āϤāĻŦ⧇ āϧāϰāύ⧇āϰ āĻĄāĻŋāϏāĻĒā§‹āĻœā§‡āĻŦāϞāĨ¤ āφāĻĒāύāĻŋ āϝ⧇ āϕ⧋āύ⧋ āϏāĻŽāϝāĻŧ⧇, āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āϏāĻš, usage_event āĻĨ⧇āϕ⧇ usage_aggregate āĻĒ⧁āύāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤\n\n## āφāχāĻĄā§‡āĻŽā§āĻĒāĻŸā§‡āύāϏāĻŋ āĻāĻŦāĻ‚ āχāϭ⧇āĻ¨ā§āϟ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻ¸ā§āĻŸā§‡āϟāϏāĻŽā§‚āĻš\n\nāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĄā§‡āϟāĻž āĻ—ā§‹āϞāĻŽā§‡āϞ⧇āĨ¤ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž āϰāĻŋāĻŸā§āϰāĻžāχ āĻ•āϰ⧇, āĻ•āĻŋāωāϗ⧁āϞ⧋ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻĻ⧇āϝāĻŧ, āĻāĻŦāĻ‚ Stripe āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻ…āĻ°ā§āĻĄāĻžāϰāĻŦāĻŋāĻšā§€āύāĻ­āĻžāĻŦ⧇ āĻāϏ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇ "āĻāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āφāϗ⧇ āĻĨ⧇āϕ⧇āχ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇", āϤāĻžāĻšāϞ⧇ āĻļ⧇āώāĻŽā§‡āĻļ āφāĻĒāύāĻŋ āĻĻ⧁āχāĻŦāĻžāϰ āĻŦāĻŋāϞ āĻ•āϰāĻŦ⧇āύāĨ¤\n\nāĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϕ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ, āύāĻŋāĻ°ā§āϧāĻžāϰāύāϝ⧋āĻ—ā§āϝ event_id āĻĻāĻŋāύ āĻāĻŦāĻ‚ āĻāϰ āωāĻĒāϰ āχāωāύāĻŋāĻ•āύ⧇āϏ āĻœā§‹āϰāĻĻāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āϕ⧇āĻŦāϞ auto-increment id-āϰ āĻ“āĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻāĻ•āϟāĻŋ āĻ­āĻžāϞ event_id āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻ“āĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ, āϝ⧇āĻŽāύ customer_id + meter + source_record_id (āĻŦāĻž customer_id + meter + timestamp_bucket + sequence)āĨ¤ āĻāĻ•āχ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāϞ⧇ āĻāĻ•āχ event_id āϤ⧈āϰāĻŋ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āχāύāϏāĻžāĻ°ā§āϟ āύāĻŋāϰāĻžāĻĒāĻĻāĻ­āĻžāĻŦ⧇ āύ⧋-āĻ…āĻĒ āĻšāĻŦ⧇āĨ¤\n\nāφāχāĻĄā§‡āĻŽā§āĻĒāĻŸā§‡āύāϏāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāύāĻœā§‡āĻ¸ā§āϟ āĻĒāĻžāĻĨāϕ⧇ āĻ•āĻ­āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻžāĻŦāϞāĻŋāĻ• API āύāϝāĻŧāĨ¤ SDK āĻ•āϞ, āĻŦā§āϝāĻžāϚ āχāĻŽāĻĒā§‹āĻ°ā§āϟ, āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āϜāĻŦ, āĻāĻŦāĻ‚ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĒā§āϰāϏ⧇āϏāĻ°â€”āϏāĻŦāĻ•āĻŋāϛ⧁āϕ⧇ āϰāĻŋāĻŸā§āϰāĻžāχ āĻ•āϰāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽ āϰāĻžāϖ⧁āύ: āχāύāĻĒ⧁āϟ āϰāĻŋāĻŸā§āϰāĻžāχ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŽāύāϟāĻŋ āĻšāϞ⧇, āϏ⧇āϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ idempotency āϕ⧀ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇ āĻŸā§‹āϟāĻžāϞ āĻŦāĻĻāϞāĻžāύ⧋āϰ āφāϗ⧇ āĻšā§‡āĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤\n\nāĻāĻ•āϟāĻŋ āϏāĻšāϜ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻ¸ā§āĻŸā§‡āϟ āĻŽāĻĄā§‡āϞ āϰāĻŋāĻŸā§āϰāĻžāχāϕ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϏāĻšāϜ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋāϕ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āϰāĻžāϖ⧁āύ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧇ āĻ•āĻžāϰāĻŖāĻ“ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ:\n\n- received: āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāĻ–āύāĻ“ āϝāĻžāϚāĻžāχ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ\n- validated: āĻ¸ā§āĻ•āĻŋāĻŽāĻž, āĻ—ā§āϰāĻžāĻšāĻ•, āĻŽāĻŋāϟāĻžāϰ, āĻāĻŦāĻ‚ āϟāĻžāχāĻŽ-āωāχāĻ¨ā§āĻĄā§‹ āύāĻŋāϝāĻŧāĻŽ āĻĒāĻžāϏ āĻ•āϰ⧇āϛ⧇\n- posted: āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻŸā§‹āϟāĻžāϞ⧇ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇\n- rejected: āĻ¸ā§āĻĨāĻžāϝāĻŧā§€āĻ­āĻžāĻŦ⧇ āωāĻĒ⧇āĻ•ā§āώāĻŋāϤ (āĻāĻ•āϟāĻŋ āĻ•āĻžāϰāĻŖ āϕ⧋āĻĄāϏāĻš)\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āφāĻĒāύāĻžāϰ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻ•ā§āĻ°ā§āϝāĻžāĻļ āĻ•āϰ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§‹āĻ¸ā§āϟ āĻ•āϰāĻžāϰ āφāϗ⧇āĨ¤ āϰāĻŋāĻŸā§āϰāĻžāχāϤ⧇ āĻāϟāĻŋ āĻāĻ•āχ event_id-āĻāϰ validated āĻ¸ā§āĻŸā§‡āĻŸā§‡ āĻĒāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ posted-āĻ āϚāϞ⧇ āϝāĻžāϝāĻŧ āϕ⧋āύ⧋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āχāϭ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āύāĻž āĻ•āϰ⧇āĨ¤\n\nStripe āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ•āϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝāĻ“ āĻāĻ•āχ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ: Stripe event.id āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻāĻ•āĻŦāĻžāϰāχ āĻĒā§āϰāϏ⧇āϏ⧇āĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧁āύ, āϝāĻžāϤ⧇ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āύāĻŋāϰāĻĒ⧇āĻ•ā§āώ āĻĨāĻžāϕ⧇āĨ¤\n\n## āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ-āĻŦāĻžāχ-āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ: āĻŽāĻŋāϟāĻžāϰāĻŋāĻ‚ āχāϭ⧇āĻ¨ā§āϟ āĻ…āĻ¨ā§āϤāĻ°ā§āĻ—āϤ āĻ•āϰāĻž (ingest) āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĢā§āϞ⧋\n\nāĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽāĻŋāϟāĻžāϰāĻŋāĻ‚ āχāϭ⧇āĻ¨ā§āϟāϕ⧇ āĻ…āĻ°ā§āĻĨ⧇āϰ āĻŽāϤ⧋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧁āύ: āĻāϟāĻžāϕ⧇ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύ, āĻ•āĻžāρāϚāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ āϰāĻžāϖ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻ‰ā§ŽāϏ āĻĨ⧇āϕ⧇ āĻŸā§‹āϟāĻžāϞ āĻĄā§‡āϰāĻžāχāĻ­ āĻ•āϰ⧁āύāĨ¤ āĻāϤ⧇ āϰāĻŋāĻŸā§āϰāĻžāχ āĻŦāĻž āĻĻ⧇āϰāĻŋāϤ⧇ āĻĄā§‡āϟāĻž āφāϏāĻž āĻšāϞ⧇āĻ“ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒā§‚āĻ°ā§āĻŦāĻžāύ⧁āĻŽāĻžāύāϝ⧋āĻ—ā§āϝ āĻĨāĻžāϕ⧇āĨ¤\n\n### āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āχāύāĻœā§‡āĻļāύ āĻĢā§āϞ⧋\n\nāĻĒā§āϰāϤāĻŋāϟāĻŋ āχāύāĻ•āĻžāĻŽāĻŋāĻ‚ āχāϭ⧇āĻ¨ā§āϟ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύ āĻŸā§‹āϟāĻžāϞ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āϰāĻžāϰ āφāϗ⧇āĨ¤ āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻĒā§āϰāϝāĻŧā§‹āϜāύ: āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻ—ā§āϰāĻžāĻšāĻ• āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀, āĻāĻ•āϟāĻŋ āĻŽāĻŋāϟāĻžāϰ āύāĻžāĻŽ, āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϏ⧂āϚāĻ• āĻĒāϰāĻŋāĻŽāĻžāĻŖ, āĻāĻ•āϟāĻŋ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ, āĻāĻŦāĻ‚ idempotency-āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻ• āχāϭ⧇āĻ¨ā§āϟ āϕ⧀āĨ¤\n\nāĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻĒā§āϰāĻĨāĻŽā§‡ āϞāĻŋāϖ⧁āύ, āĻāĻŽāύāĻ•āĻŋ āĻĒāϰ⧇ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āĻĨāĻžāĻ•āϞ⧇āĻ“āĨ¤ āϐ āĻ•āĻžāρāϚāĻž āϰ⧇āĻ•āĻ°ā§āĻĄāχ āφāĻĒāύāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āĻ•āϰāĻŦ⧇āύ, āĻ…āĻĄāĻŋāϟ āĻ•āϰāĻŦ⧇āύ, āĻāĻŦāĻ‚ āϭ⧁āϞ āĻ āĻŋāĻ• āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύāĨ¤\n\nāĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻĢā§āϞ⧋ āĻĻ⧇āĻ–āĻžāĻŦ⧇ āĻāχāĻ­āĻžāĻŦ⧇:\n\n- āχāϭ⧇āĻ¨ā§āϟ āĻ—ā§āϰāĻšāĻŖ, āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ• āĻĢāĻŋāĻ˛ā§āĻĄ āϝāĻžāϚāĻžāχ, āχāωāύāĻŋāϟāϗ⧁āϞ⧋ āύāĻ°ā§āĻŽāĻžāϞāĻžāχāϜ āĻ•āϰ⧁āύ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻŦāύāĻžāĻŽ āĻŽāĻŋāύāĻŋāϟ)āĨ¤\n- āχāϭ⧇āĻ¨ā§āϟ āϕ⧀-āϕ⧇ āχāωāύāĻŋāĻ• āĻ•āύāĻ¸ā§āĻŸā§āϰ⧇āχāĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āϏāĻžāϰāĻŋ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧁āύāĨ¤\n- āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āĻŦāĻž āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻŦāĻžāĻ˛ā§āϕ⧇āĻŸā§‡ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻ•āϰ⧇ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤\n- āϝāĻĻāĻŋ āφāĻĒāύāĻŋ Stripe-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āύ, āϝ⧇ āϤāĻĨā§āϝ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āϛ⧇āύ āϤāĻž (āĻŽāĻŋāϟāĻžāϰ, āĻŽā§āĻ˛ā§āϝ, āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ, āĻāĻŦāĻ‚ Stripe āϰ⧇āϏāĻĒāĻ¨ā§āϏ āφāχāĻĄā§‡āĻ¨ā§āϟāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ) āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧁āύāĨ¤\n- āĻ…āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āϤāĻž (rejected āχāϭ⧇āĻ¨ā§āϟ, āχāωāύāĻŋāϟ āĻ•āύāĻ­āĻžāĻ°ā§āϏāύ, āĻĻ⧇āϰāĻŋāϤ⧇ āφāĻ—āĻŽāύ) āĻ…āĻĄāĻŋāϟ āϞāĻ— āĻ•āϰ⧁āύāĨ¤\n\nāĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āĻļāύ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāϝ⧋āĻ—ā§āϝ āϰāĻžāϖ⧁āύāĨ¤ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ⧋: āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻāĻ• āĻŸā§āϰāĻžāύāĻœā§‡āĻ•āĻļāύ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧇ āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āϜāĻŦ enqueue āĻ•āϰāĻž āϝāĻž āĻŦāĻžāĻ˛ā§āϕ⧇āϟ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āϜāĻŦāϟāĻŋ āĻĻ⧁āχāĻŦāĻžāϰ āϚāĻžāϞāĻžāύ āĻšāϝāĻŧ, āϏ⧇āϟāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻŦ⧇ āϝ⧇ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤\n\nāϝāĻ–āύ āĻāĻ•āϜāύ āĻ—ā§āϰāĻžāĻšāĻ• āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧇ āϕ⧇āύ āϤāĻžāĻĻ⧇āϰ āĻŦāĻŋāϞ 12,430 API āĻ•āϞ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇, āφāĻĒāύāĻžāϕ⧇ āϏ⧇āχ āĻŦāĻŋāϞāĻŋāĻ‚ āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϰ āϏāĻ āĻŋāĻ• āϏ⧇āϟ āĻĻ⧇āĻ–āĻžāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤\n\n## Stripe āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ•āϕ⧇ āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻžāύ⧋ (Reconciling)\n\nāĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻšāϞ⧋ Stripe āϝāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻ•āϰ⧇āϛ⧇ āϤāĻžāϰ āϰāϏāĻŋāĻĻāĨ¤ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ āĻĄā§āϰāĻžāĻĢāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āχāύāĻ­āϝāĻŧ⧇āϏ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϤāĻ–āύāχ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϝāĻ–āύ Stripe āĻŦāϞ⧇āĨ¤\n\nāĻ…āϧāĻŋāĻ•āĻžāĻ‚āĻļ āϟāĻŋāĻŽ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āϟāĻžāχāĻĒ⧇āϰ āĻ“āĻĒāϰāχ āĻŽāύ⧋āϝ⧋āĻ— āĻĻ⧇āϝāĻŧ āϝ⧇āϗ⧁āϞ⧋ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĢāϞāĻžāĻĢāϞ⧇ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĢ⧇āϞ⧇:\n\n- invoice.created, invoice.finalized, invoice.paid, invoice.payment_failed\n- customer.subscription.created, customer.subscription.updated, customer.subscription.deleted\n- checkout.session.completed (āϝāĻĻāĻŋ āφāĻĒāύāĻŋ Checkout-āĻ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ)\n\nāĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āĻ•āĻžāρāϚāĻž āĻĒ⧇āĻāϞ⧋āĻĄ āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āϝāĻ–āύ āĻāϟāĻŋ āφāϏāĻ›āĻŋāϞ⧋ āϤāĻ–āύ āϝāĻž āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇āϛ⧇āύ āϤāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ: Stripe event.id, event.created, āφāĻĒāύāĻžāϰ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āϭ⧇āϰāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻĢāϞāĻžāĻĢāϞ, āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ—ā§āϰāĻšāĻŖ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒāĨ¤ āĻāχ āχāϤāĻŋāĻšāĻžāϏ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻŦāĻž "āϕ⧇āύ āφāĻŽāĻžāϕ⧇ āϚāĻžāĻ°ā§āϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇?" āϜāĻŦāĻžāĻŦ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻŽā§‚āĻ˛ā§āϝāĻŦāĻžāύāĨ¤\n\nāĻāĻ•āϟāĻŋ āĻļāĻ•ā§āϤ, idempotent āϰāĻŋāĻ•āύāϏāĻŋāϞāĻŋāϝāĻŧ⧇āĻļāύ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻĻ⧇āĻ–āĻžāĻŦ⧇ āĻāχāĻ­āĻžāĻŦ⧇:\n\n1. stripe_webhook_events āĻŸā§‡āĻŦāĻŋāϞ⧇ āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻ• āĻ•āύāĻ¸ā§āĻŸā§āϰ⧇āχāĻ¨ā§āϟ āϏāĻš āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧁āύ, event_id-āĻāϰ āωāĻĒāϰāĨ¤\n2. āϝāĻĻāĻŋ āχāύāϏāĻžāĻ°ā§āϟ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ, āĻāϟāĻŋ āϰāĻŋāĻŸā§āϰāĻžāχ; āĻĨāĻžāĻŽā§āύāĨ¤\n3. āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻĒāĻžāĻļ/āĻĢ⧇āϞ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧁āύāĨ¤\n4. āχāϭ⧇āĻ¨ā§āϟ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ Stripe ID (customer, subscription, invoice) āĻĻāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻžāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻĻ⧇āϖ⧁āύāĨ¤\n5. āĻ¸ā§āĻŸā§‡āϟāĻšā§‡āĻžā§āϜāϟāĻŋ āϕ⧇āĻŦāϞ āϤāĻ–āύ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧁āύ āϝāĻ–āύ āĻāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄāϕ⧇ āĻāĻ—āĻŋāϝāĻŧ⧇ āύ⧇āϝāĻŧāĨ¤\n\nāφāωāϟ-āĻ…āĻĢ-āĻ…āĻ°ā§āĻĄāĻžāϰ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĨ¤ "āĻŽā§āϝāĻžāĻ•ā§āϏ āĻ¸ā§āĻŸā§‡āϟ āϜāϝāĻŧ⧇āϏ" āύāĻŋāϝāĻŧāĻŽ āĻāĻŦāĻ‚ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ: āĻ•āĻ–āύ⧋ āϕ⧋āύ⧋ āϰ⧇āĻ•āĻ°ā§āĻĄāϕ⧇ āφāϗ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϝāĻŧ āύāĻžāĻŽāĻžāύ āύāĻžāĨ¤\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āφāĻĒāύāĻŋ invoice.paid āĻĒāĻžāύ invoice in_123-āĻāϰ āϜāĻ¨ā§āϝ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āχāύāĻ­āϝāĻŧ⧇āϏ āϰ⧋ āĻāĻ–āύāĻ“ āύ⧇āχāĨ¤ āĻāĻ•āϟāĻŋ āϰ⧋ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝ⧇āϟāĻŋ "Stripe āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āĻž āĻšāϝāĻŧ⧇āϛ⧇" āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻĨāĻžāĻ•āĻŦ⧇, āϤāĻžāϰāĻĒāϰ āĻĒāϰ⧇ Stripe customer ID āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ āĻŋāĻ• āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āϏāĻ™ā§āϗ⧇ āĻāϟāĻŋāϕ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤ āĻāϤ⧇ āφāĻĒāύāĻžāϰ āϞ⧇āϜāĻžāϰ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϟ āĻĨāĻžāϕ⧇ āĻĄāĻžāĻŦāϞ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻ›āĻžāĻĄāĻŧāĻžāχāĨ¤\n\n## āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŸā§‹āϟāĻžāϞ āĻĨ⧇āϕ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āϞāĻžāχāύ āφāχāĻŸā§‡āĻŽ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ\n\nāĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āϞāĻžāχāύ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻ•āϰāĻž āĻŽā§‚āϞāϤ āϏāĻŽāϝāĻŧāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ“ āϏ⧀āĻŽāĻžāύāĻžāϰ āĻŦāĻŋāώāϝāĻŧāĨ¤ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύ āφāĻĒāύāĻŋ āĻ•āĻŋ āϰāĻŋāϝāĻŧ⧇āϞ-āϟāĻžāχāĻŽ āĻŸā§‹āϟāĻžāϞ āϚāĻžāύ (āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄ, āĻ¸ā§āĻĒ⧇āĻ¨ā§āĻĄ āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āϟ) āύāĻžāĻ•āĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻŋāϞāĻŋāĻ‚ āϏāĻŽāϝāĻŧ⧇āĨ¤ āĻ…āύ⧇āĻ• āϟāĻŋāĻŽ āωāĻ­āϝāĻŧ āĻ•āϰ⧇: āχāϭ⧇āĻ¨ā§āϟ āĻ•ā§āϰāĻŽāĻžāĻ—āϤ āϞāĻŋāϖ⧇ āϰāĻžāϖ⧇, āχāύāĻ­āϝāĻŧ⧇āϏ-āϰ⧇āĻĄāĻŋ āĻŸā§‹āϟāĻžāϞ āĻļāĻŋāĻĄāĻŋāωāϞāĻĄ āϜāĻŦ āĻĻāĻŋāϝāĻŧ⧇ āĻ•āĻŽā§āĻĒāĻŋāωāϟ āĻ•āϰ⧇āĨ¤\n\nāφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āωāχāĻ¨ā§āĻĄā§‹ Stripe-āϰ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻžāϝ⧁āĻœā§āϝ āϰāĻžāϖ⧁āύāĨ¤ āĻ•ā§āϝāĻžāϞ⧇āĻ¨ā§āĻĄāĻžāϰ āĻŽāĻžāϏ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāĻļāύ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻ¸ā§āϟāĻžāĻ°ā§āϟ āĻ“ āĻāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āϕ⧇āĻŦāϞ āϏ⧇āχ āωāχāĻ¨ā§āĻĄā§‹āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻĄāĻŧāĻž āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϰ āϏāĻŽāĻˇā§āϟāĻŋ āύāĻŋāύāĨ¤ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ UTC-āϤ⧇ āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āĻŦāĻŋāϞāĻŋāĻ‚ āωāχāĻ¨ā§āĻĄā§‹āĻ“ UTC-āϤ⧇ āϰāĻžāϖ⧁āύāĨ¤\n\nāχāϤāĻŋāĻšāĻžāϏ āĻ…āĻŽā§‹āϚāύ⧀āϝāĻŧ āϰāĻžāϖ⧁āύāĨ¤ āĻĒāϰ⧇ āϝāĻĻāĻŋ āϭ⧁āϞ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ, āĻĒ⧁āϰāĻžāύ⧋ āχāϭ⧇āĻ¨ā§āϟ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰāĻŦ⧇āύ āύāĻž āĻŦāĻž āĻĒā§‚āĻ°ā§āĻŦ⧇āϰ āĻŸā§‹āϟāĻžāϞ āĻĒ⧁āύāσāϞāĻŋāĻ–āύ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āϰ⧇āĻ•āĻ°ā§āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž āĻŽā§‚āϞ āωāχāĻ¨ā§āĻĄā§‹āϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϝ⧋āĻ— āĻŦāĻž āĻŦāĻŋāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻ…āĻĄāĻŋāĻŸā§‡ āϏāĻšāϜ āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āϰāĻžāĻ–āϤ⧇ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻ⧇āϝāĻŧāĨ¤\n\nāĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ“ āĻĒā§āϰ⧋āϰ⧇āĻļāύ āĻšāϞ āϜāĻžāϝāĻŧāĻ—āĻž āϝ⧇āĻ–āĻžāύ⧇ āĻŸā§āϰ⧇āϏ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻĒā§āϰāĻžāϝāĻŧāχ āĻšāĻžāϰāĻžāϝāĻŧāĨ¤ āĻ—ā§āϰāĻžāĻšāĻ• āĻŽāĻžāĻāĻĒāĻĨ⧇ āĻĒā§āĻ˛ā§āϝāĻžāύ āĻŦāĻĻāϞāĻžāϞ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āϏāĻžāĻŦ-āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĻāĻžāĻŽ āϝ⧇āĻ–āĻžāύ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ›āĻŋāϞ āϏ⧇āχ āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻžāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ āφāĻĒāύāĻžāϰ āχāύāĻ­āϝāĻŧ⧇āϏ āĻĻ⧁āχāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϞāĻžāχāύ⧇ (āĻŦāĻž āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āĻĒā§āϞāĻžāϏ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ) āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰ⧇, āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽā§‚āĻ˛ā§āϝ āĻ“ āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻžāϰ āϏāĻ™ā§āϗ⧇ āϝ⧁āĻ•ā§āϤāĨ¤\n\nāĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĢā§āϞ⧋:\n\n- Stripe āĻĨ⧇āϕ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āωāχāĻ¨ā§āĻĄā§‹ (period start āĻāĻŦāĻ‚ end) āĻŸā§‡āύ⧇ āύāĻŋāύāĨ¤\n- āϐ āωāχāĻ¨ā§āĻĄā§‹ āĻ“ āĻĒā§āϰāĻžāχāϏ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻ•āϰ⧁āύāĨ¤\n- āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŸā§‹āϟāĻžāϞ āĻ“ āϝ⧇āϕ⧋āύ⧋ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āϞāĻžāχāύ āφāχāĻŸā§‡āĻŽ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧁āύāĨ¤\n- āĻāĻ•āϟāĻŋ calculation run id āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāϜāύāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤\n\n## āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āĻāĻŦāĻ‚ āĻĻ⧇āϰāĻŋ āĻĄā§‡āϟāĻžâ€”āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ­āĻžāĻ™āĻžāύ⧋ āĻ›āĻžāĻĄāĻŧāĻžāχ\n\nāĻĻ⧇āϰāĻŋāϤ⧇ āφāϏāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĨ¤ āĻĄāĻŋāĻ­āĻžāχāϏ āĻ…āĻĢāϞāĻžāχāύ āĻšāϝāĻŧ, āĻŦā§āϝāĻžāϚ āϜāĻŦ āĻĻ⧇āϰāĻŋ āĻ•āϰ⧇, āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āĻĢāĻžāχāϞ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāϝāĻŧ, āĻāĻŦāĻ‚ āϞāĻ—āϏ āφāωāĻŸā§‡āĻœā§‡āϰ āĻĒāϰ⧇ āϰāĻŋāĻĒā§āϞ⧇ āĻšāϝāĻŧāĨ¤ āĻŽā§‚āϞ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ⧋ āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āĻžāϜ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ–āĻž, āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞ⧋ "āĻĢāĻŋāϟ āĻ•āϰāĻžāύ⧋" āĻšāĻŋāϏ⧇āĻŦ⧇ āύāϝāĻŧāĨ¤\n\nāĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧁āύ āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āϕ⧋āĻĨāĻž āĻĨ⧇āϕ⧇ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ (āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϞāĻ—, āĻ“ā§Ÿā§āϝāĻžāϰāĻšāĻžāωāϏ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ, āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ)āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāϭ⧇āĻ¨ā§āĻŸā§‡ āϏ⧋āĻ°ā§āϏ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āφāĻĒāύāĻŋ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϕ⧇āύ āĻāϟāĻŋ āĻĻ⧇āϰāĻŋāϤ⧇ āĻāϞ⧋āĨ¤\n\nāĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āĻ•āϰāϞ⧇ āĻĻ⧁āχāϟāĻŋ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āϰāĻžāϖ⧁āύ: āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϝāĻŧ⧇āϛ⧇ (āϝāĻž āφāĻĒāύāĻŋ āĻŦāĻŋāϞ āĻ•āϰāϤ⧇ āϚāĻžāύ) āĻāĻŦāĻ‚ āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāϟāĻŋ āχāύāĻœā§‡āĻ¸ā§āϟ āĻ•āϰ⧇āϛ⧇āύāĨ¤ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋāϕ⧇ āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŸā§āϝāĻžāĻ— āĻ•āϰ⧁āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āχāϤāĻŋāĻšāĻžāϏ āĻ“āĻ­āĻžāϰāϰāĻžāχāϟ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤\n\nāĻĻ⧇āĻ˛ā§āϟāĻž āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻžāϰ āĻŦāĻĻāϞ⧇ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āĻŸā§‹āϟāĻžāϞ āĻĒ⧁āύāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰ⧁āύāĨ¤ āϰ⧇āĻĒā§āϞ⧇ āĻšāϞ⧋ āĻŦāĻžāĻ— āĻĨ⧇āϕ⧇ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ⧇āϰ āωāĻĒāĻžāϝāĻŧ ā¤Ŧā¤ŋā¤¨ā¤ž āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻžāϰāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻĒāĻžāχāĻĒāϞāĻžāχāύ idempotent āĻšāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻĻāĻŋāύ, āĻāĻ• āϏāĻĒā§āϤāĻžāĻš, āĻŦāĻž āĻĒ⧁āϰ⧋ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻŦāĻ‚ āĻāĻ•āχ āĻŸā§‹āϟāĻžāϞ āĻĒāĻžāĻŦ⧇āύāĨ¤\n\nāĻāĻ•āĻŦāĻžāϰ āχāύāĻ­āϝāĻŧ⧇āϏ āϤ⧈āϰāĻŋ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻžāϰ āύ⧀āϤāĻŋāϗ⧁āϞ⧋ āĻ¸ā§āĻĒāĻˇā§āϟ āϰāĻžāϖ⧁āύ:\n\n- āϝāĻĻāĻŋ āχāύāĻ­āϝāĻŧ⧇āϏ āĻĢāĻžāχāύāĻžāϞ āύāĻž āĻšāϝāĻŧ, āĻĢāĻžāχāύāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āφāϗ⧇ āĻĒ⧁āύāσāĻšāĻŋāϏāĻžāĻŦ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻŸā§‹āϟāĻžāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύāĨ¤\n- āϝāĻĻāĻŋ āĻāϟāĻŋ āĻĢāĻžāχāύāĻžāϞ āĻāĻŦāĻ‚ āφāĻ¨ā§āĻĄāĻžāϰāĻŦāĻŋāϞāĻĄ āĻšāϝāĻŧ, āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĄ-āĻ…āύ āχāύāĻ­āϝāĻŧ⧇āϏ āχāĻ¸ā§āϝ⧁ āĻ•āϰ⧁āύ (āĻŦāĻž āύāϤ⧁āύ āχāύāĻ­āϝāĻŧ⧇āϏ āφāχāĻŸā§‡āĻŽ āϝ⧋āĻ— āĻ•āϰ⧁āύ) āĻ¸ā§āĻĒāĻˇā§āϟ āĻŦāĻ°ā§āĻŖāύāĻžāϏāĻšāĨ¤\n- āϝāĻĻāĻŋ āĻāϟāĻŋ āĻĢāĻžāχāύāĻžāϞ āĻāĻŦāĻ‚ āĻ“āĻ­āĻžāϰāĻŦāĻŋāĻ˛ā§āĻĄ āĻšāϝāĻŧ, āĻāĻ•āϟāĻŋ āĻ•ā§āϰ⧇āĻĄāĻŋāϟ āύ⧋āϟ āχāĻ¸ā§āϝ⧁ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻŽā§‚āϞ āχāύāĻ­āϝāĻŧ⧇āϏ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻ•āϰ⧁āύāĨ¤\n- āϏāĻ‚āĻļā§‹āϧāύ āĻāĻĄāĻŧāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āĻ…āĻ¨ā§āϝ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄā§‡ āϏāϰāĻžāĻŦ⧇āύ āύāĻžāĨ¤\n- āϏāĻ‚āĻļā§‹āϧāύ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āĻžāϰāĻŖ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ (āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āϰāĻŋāϏ⧇āĻ¨ā§āĻĄ, āĻĻ⧇āϰāĻŋ āϞāĻ— āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ, āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āϏ)āĨ¤\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāύāĻžāϰ āϜāĻžāύāĻžāϝāĻŧ āϝ⧇ āϜāĻžāύ⧁āϝāĻŧāĻžāϰāĻŋ 28-29-āĻāϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻĢ⧇āĻŦā§āϰ⧁āϝāĻŧāĻžāϰāĻŋ 3-āĻ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻĒāύāĻŋ āϏ⧇āϗ⧁āϞ⧋ insert āĻ•āϰ⧇āύ occurred_at āϜāĻžāύ⧁āϝāĻŧāĻžāϰāĻŋāϤ⧇, ingested_at āĻĢ⧇āĻŦā§āϰ⧁āϝāĻŧāĻžāϰāĻŋāϤ⧇, āĻāĻŦāĻ‚ āϏ⧋āĻ°ā§āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ "partner" āϰāĻžāϖ⧇āύāĨ¤ āϜāĻžāύ⧁āϝāĻŧāĻžāϰāĻŋāϰ āχāύāĻ­āϝāĻŧ⧇āϏ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻĒ⧇āχāĻĄ āĻ›āĻŋāϞ, āϤāĻžāχ āφāĻĒāύāĻŋ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āχāωāύāĻŋāϟāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ…ā§āϝāĻžāĻĄ-āĻ…āύ āχāύāĻ­āϝāĻŧ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āύ āĻāĻŦāĻ‚ āϰāĻŋāĻ•āύāϏāĻŋāϞāĻŋāϝāĻŧ⧇āĻļāύ āϰ⧇āĻ•āĻ°ā§āĻĄā§‡āϰ āĻĒāĻžāĻļ⧇ āĻ•āĻžāϰāĻŖ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻŦ⧇āύāĨ¤\n\n## āĻĄāĻžāĻŦāϞ-āĻ•āĻžāωāĻ¨ā§āϟāĻŋāĻ‚-āĻāϰ āĻ•āĻžāϰāĻŖ āĻšāĻ“āϝāĻŧāĻž āϏāĻžāϧāĻžāϰāĻŖ āϭ⧁āϞāϗ⧁āϞ⧋\n\nāĻĄāĻžāĻŦāϞ-āĻ•āĻžāωāĻ¨ā§āϟāĻŋāĻ‚ āϘāĻŸā§‡ āϝāĻ–āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŽāύ⧇ āĻ•āϰ⧇ "āĻāĻ•āϟāĻŋ āĻŽā§‡āϏ⧇āϜ āĻāϏ⧇āϛ⧇" āĻŽāĻžāύ⧇āχ "āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻšāϝāĻŧ⧇āϛ⧇"āĨ¤ āϰāĻŋāĻŸā§āϰāĻžāχ, āĻĻ⧇āϰāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ•, āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ⧇āϰ āϏāĻžāĻĨ⧇, āφāĻĒāύāĻžāϕ⧇ āĻ—ā§āϰāĻžāĻšāϕ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻļāύāϕ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤\n\nāϏāĻžāϧāĻžāϰāĻŖ āĻ…āĻĒāϰāĻžāϧ⧀āϗ⧁āϞ⧋:\n\n- āϰāĻŋāĻŸā§āϰāĻžāχāϗ⧁āϞ⧋ āύāϤ⧁āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ–āĻžāĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāϭ⧇āĻ¨ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāχāĻĄāĻŋ (request_id, message_id) āύāĻž āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āχāωāύāĻŋāĻ•āύ⧇āϏ āĻœā§‹āϰ āύāĻž āĻ•āϰ⧇, āφāĻĒāύāĻŋ āĻĻ⧁āχāĻŦāĻžāϰ āĻ—āĻŖāύāĻž āĻ•āϰāĻŦ⧇āύāĨ¤\n- āχāϭ⧇āĻ¨ā§āϟ āϟāĻžāχāĻŽ āĻ“ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āϟāĻžāχāĻŽ āĻŽāĻŋāĻļā§āϰāĻŋāϤ āĻ•āϰāĻžāĨ¤ ingest āϏāĻŽāϝāĻŧ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāϞ⧇ āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏāĻž āχāϭ⧇āĻ¨ā§āϟ āϭ⧁āϞ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄā§‡ āφāϏ⧇, āĻĒāϰ⧇ āϰ⧇āĻĒā§āϞ⧇-āϤ⧇ āφāĻŦāĻžāϰ āĻ—āĻŖāύāĻž āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤\n- āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻŦāĻž āĻ“āĻ­āĻžāϰāϰāĻžāχāϟ āĻ•āϰāĻžāĨ¤ āϝāĻĻāĻŋ āϕ⧇āĻŦāϞ āϚāϞāĻŽāĻžāύ āĻŸā§‹āϟāĻžāϞ āϰāĻžāĻ–āĻž āĻšāϝāĻŧ, āφāĻĒāύāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž āϕ⧀ āϘāĻŸā§‡āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ āϰāĻŋ-āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻŸā§‹āϟāĻžāϞ āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤\n- āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻ…āĻ°ā§āĻĄāĻžāϰ āϧāϰ⧇ āύ⧇āĻ“āϝāĻŧāĻžāĨ¤ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ, āφāωāϟ-āĻ…āĻĢ-āĻ…āĻ°ā§āĻĄāĻžāϰ, āĻŦāĻž āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻŸā§‡āϟ āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋāĻ¤ā§āĻŦ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ Stripe āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āφāχāĻĄāĻŋ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ reconcile āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ "āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•ā§ƒāϤ" āĻ—āĻžāĻ°ā§āĻĄ āϰāĻžāϖ⧁āύāĨ¤\n- āĻ•ā§āϝāĻžāĻ¨ā§āϏ⧇āϞ⧇āĻļāύ, āϰāĻŋāĻĢāĻžāĻ¨ā§āĻĄ, āĻāĻŦāĻ‚ āĻ•ā§āϰ⧇āĻĄāĻŋāϟ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻŽāĻĄā§‡āϞ āύāĻž āĻ•āϰāĻžāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϕ⧇āĻŦāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϝ⧋āĻ— āĻ•āϰ⧇āύ āĻāĻŦāĻ‚ āύ⧇āϤāĻŋāĻŦāĻžāϚāĻ• āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āϰ⧇āĻ•āĻ°ā§āĻĄ āύāĻž āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻĒāϰ⧇ āφāĻĒāύāĻŋ āχāĻŽāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āĻŦāĻž āĻ…āĻ¨ā§āϝāĻ­āĻžāĻŦ⧇ āĻ āĻŋāĻ• āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϞ⧇ āφāĻŦāĻžāϰāĻ“ āĻ—ā§‹āύāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤\n\nāωāĻĻāĻžāĻšāϰāĻŖ: āφāĻĒāύāĻŋ āϞāĻ— āĻ•āϰ⧇āύ "10 API āĻ•āϞ" āĻāĻŦāĻ‚ āĻĒāϰ⧇ āφāωāĻŸā§‡āĻœā§‡āϰ āĻ•āĻžāϰāϪ⧇ 2 āĻ•āϞ āĻ•ā§āϰ⧇āĻĄāĻŋāϟ āĻĻ⧇āύāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āχ āĻĻāĻŋāύ⧇ āĻĒ⧁āϰ⧋ āĻĻāĻŋāύ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāύ āĻāĻŦāĻ‚ āĻ•ā§āϰ⧇āĻĄāĻŋāϟāĻ“ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āύ, āĻ—ā§āϰāĻžāĻšāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϝāĻŧ 18 āĻ•āϞ (10 + 10 - 2) āĻŦāϰāĻ‚ āϏāĻ āĻŋāĻ• 8 āĻ•āϞāĨ¤\n\n## āϞāĻžāχāĻ­ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇ āĻĻā§āϰ⧁āϤ āĻšā§‡āĻ•āϞāĻŋāĻ¸ā§āϟ\n\nāĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ—ā§āϰāĻžāĻšāĻ•āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦāĻŋāϞāĻŋāĻ‚ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ…āĻ˛ā§āĻĒ āĻ•āĻŋāϛ⧁ āĻĒāϰ⧀āĻ•ā§āώāĻžāϝāĻŧ āύāĻŋāϝāĻŧ⧇ āϝāĻžāύ āϝāĻž āϏāĻ¸ā§āϤāĻž āĻŦāĻŋāϞāĻŋāĻ‚ āĻŦāĻžāĻ—āϗ⧁āϞ⧋ āφāϟāĻ•āĻžāϝāĻŧāĨ¤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž "Stripe āϏāĻŽāĻ¸ā§āϝāĻž" āύāϝāĻŧ—āĻāϗ⧁āϞ⧋ āĻĄā§‡āϟāĻž āϏāĻŽāĻ¸ā§āϝāĻž: āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ, āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĻāĻŋāύ, āĻāĻŦāĻ‚ āύ⧀āϰāĻŦ āϰāĻŋāĻŸā§āϰāĻžāχāĨ¤\n\nāĻšā§‡āĻ•āϞāĻŋāĻ¸ā§āϟ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ“ āĻĒā§āϰāϝāĻŧā§‹āĻ—āϝ⧋āĻ—ā§āϝ āϰāĻžāϖ⧁āύ:\n\n- āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āĻŸā§‡ āχāωāύāĻŋāĻ•āύ⧇āϏ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ (āωāĻĻāĻžāĻšāϰāĻŖ: event_id-āĻ āχāωāύāĻŋāĻ• āĻ•āύāĻ¸ā§āĻŸā§āϰ⧇āχāĻ¨ā§āϟ) āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ id āĻ•ā§ŒāĻļāϞ⧇ āĻĒā§āϰāĻŦāϞ āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āϰāĻžāϖ⧁āύāĨ¤\n- āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ, āϤāĻžāϰ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύ, āĻāĻŦāĻ‚ idempotentāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰ⧁āύāĨ¤\n- āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ…āύ⧁āĻšā§āϛ⧇āĻĻ āĻšāĻŋāϏāĻžāĻŦ⧇ āφāϚāϰāĻŖ āĻ•āϰ⧁āĻ¨â€”āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϕ⧇ āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āϰāĻžāϖ⧁āύāĨ¤ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰ⧁āύ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻĻāĻŋāϝāĻŧ⧇ (positive āĻŦāĻž negative), āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰ⧇ āύāϝāĻŧāĨ¤\n- āĻāĻ•āϟāĻŋ āĻĻ⧈āύāĻŋāĻ• reconciliation āϜāĻŦ āϚāĻžāϞāĻžāύ āϝāĻž āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻŸā§‹āϟāĻžāϞ (āĻĒā§āϰāϤāĻŋ āĻ—ā§āϰāĻžāĻšāĻ•, āĻĒā§āϰāϤāĻŋ āĻŽāĻŋāϟāĻžāϰ, āĻĒā§āϰāϤāĻŋ āĻĻāĻŋāύ) āĻāĻŦāĻ‚ Stripe āĻŦāĻŋāϞāĻŋāĻ‚ āĻ¸ā§āĻŸā§‡āϟ āϤ⧁āϞāύāĻž āĻ•āϰ⧇āĨ¤\n- āĻ—ā§āϝāĻžāĻĒ āĻ“ āĻ…āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāϞāĻžāĻ°ā§āϟ āϝ⧋āĻ— āĻ•āϰ⧁āύ: āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĻāĻŋāύ, āύ⧇āϤāĻŋāĻŦāĻžāϚāĻ• āĻŸā§‹āϟāĻžāϞ, āĻšāĻ āĻžā§Ž āωāĻ¤ā§āĻĨāĻžāύ, āĻ…āĻĨāĻŦāĻž "āχāϭ⧇āĻ¨ā§āϟ āχāύāĻœā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇" āĻāĻŦāĻ‚ "āχāϭ⧇āĻ¨ā§āϟ āĻŦāĻŋāϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇"-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻĄāĻŧ āĻĢāĻžāϰāĻžāĻ•āĨ¤\n\nāĻāĻ•āϟāĻŋ āϏāĻšāϜ āĻĒāϰ⧀āĻ•ā§āώāĻž: āĻāĻ•āϟāĻŋ āĻ—ā§āϰāĻžāĻšāĻ• āĻŦ⧇āϛ⧇ āύāĻŋāύ, āĻļ⧇āώ 7 āĻĻāĻŋāύ⧇āϰ āϜāĻ¨ā§āϝ āχāύāĻœā§‡āĻļāύ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞāĻžāύ, āĻāĻŦāĻ‚ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āĻŸā§‹āϟāĻžāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āύāĻžāĨ¤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻāĻ–āύāĻ“ idempotency āĻŦāĻž āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ āϏāĻŽāĻ¸ā§āϝāĻž āφāϛ⧇āĨ¤\n\n## āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧃āĻļā§āϝ: āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ“ āχāύāĻ­āϝāĻŧ⧇āϏ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻŽāĻžāϏ\n\nāĻāĻ•āϟāĻŋ āϛ⧋āϟ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāĻŽ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āĻĒā§āϰāϤāĻŋ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ $0.10 āϚāĻžāĻ°ā§āϜ āĻ•āϰ⧇āĨ¤ āϤāĻžāϰāĻž Stripe-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦāĻŋāϞāĻŋāĻ‚ āĻŦāĻŋāĻ•ā§āϰāϝāĻŧ āĻ•āϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āφāϏ⧇ āϤāĻ–āύāχ āϝāĻ–āύ āĻĄā§‡āϟāĻž āĻ—ā§‹āϞāĻŽā§‡āϞ⧇ āĻšāϞ⧇ āĻ•āĻŋ āϘāĻŸā§‡ āϤāĻž āĻ¸ā§āĻŦāĻšā§āĻ› āĻĨāĻžāϕ⧇āĨ¤\n\nāĻŽāĻžāĻ°ā§āϚ 1-āĻ āĻ—ā§āϰāĻžāĻšāĻ• āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻāĻœā§‡āĻ¨ā§āϟ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ āĻŦāĻ¨ā§āϧ āĻ•āϰāϞ⧇ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āĻāĻŽāĻŋāϟ āĻ•āϰ⧇:\n\n- event_id: āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ UUID\n- customer_id āĻāĻŦāĻ‚ subscription_item_id\n- quantity: 1 āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ\n- occurred_at: āĻ•ā§āϞ⧋āϜ āϟāĻžāχāĻŽ\n- ingested_at: āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻĻ⧇āĻ–āĻž āϏāĻŽāϝāĻŧ\n\nāĻŽāĻžāĻ°ā§āϚ 3-āĻ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āϟāĻžāχāĻŽāφāωāĻŸā§‡āϰ āĻĒāϰ⧇ āϰāĻŋāĻŸā§āϰāĻžāχ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāĻ•āχ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ event_id āχāωāύāĻŋāĻ• āĻšāĻ“āϝāĻŧāĻžāϝāĻŧ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āχāύāϏāĻžāĻ°ā§āϟ āύ⧋-āĻ…āĻĒ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻŸā§‹āϟāĻžāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϝāĻŧ āύāĻžāĨ¤\n\nāĻŽāĻ§ā§āϝāĻŽāĻžāϏ⧇, Stripe āχāύāĻ­āϝāĻŧ⧇āϏ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻĒāϰ⧇ āĻĢāĻžāχāύāĻžāϞāĻžāχāϜāĻĄ āχāύāĻ­āϝāĻŧ⧇āϏ⧇āϰ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āφāĻĒāύāĻžāϰ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰ stripe_event_id, type, āĻāĻŦāĻ‚ received_at āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŸā§āϰāĻžāύāĻœā§‡āĻ•āĻļāύ āĻ•āĻŽāĻŋāϟ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇ āĻĒā§āϰāϏ⧇āϏāĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĻ⧁āĻŦāĻžāϰ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻšāϝāĻŧ, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϟāĻŋ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āĻ•āĻžāϰāĻŖ stripe_event_id āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āφāϛ⧇āĨ¤\n\nāĻŽāĻžāĻ°ā§āϚ 18-āĻ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻŽā§‹āĻŦāĻžāχāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏāĻž āĻŦā§āϝāĻžāϚ āχāĻŽāĻĒā§‹āĻ°ā§āϟ āĻĒāĻžāύ āϝ⧇āϟāĻŋ āĻŽāĻžāĻ°ā§āϚ 17-āĻāϰ 35 āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ āϰāĻžāϖ⧇āĨ¤ āϐ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϰ occurred_at āĻĒ⧁āϰāĻžāύ⧋ āĻšāϞ⧇āĻ“ āĻāϗ⧁āϞ⧋ āĻŦ⧈āϧāĨ¤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϏ⧇āϗ⧁āϞ⧋ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧇, āĻŽāĻžāĻ°ā§āϚ 17-āĻāϰ āĻĻ⧈āύāĻŋāĻ• āĻŸā§‹āϟāĻžāϞ āĻĒ⧁āύāσāĻ—āĻŖāύāĻž āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĒāϰ⧇āϰ āχāύāĻ­āϝāĻŧ⧇āϏ⧇ āϧāϰāĻž āĻĒāĻĄāĻŧ⧇ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻāĻ–āύāĻ“ āĻ–ā§‹āϞāĻž āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻ›āĻŋāϞāĨ¤\n\nāĻŽāĻžāĻ°ā§āϚ 22-āĻ āφāĻĒāύāĻŋ āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇āύ āĻāĻ•āϟāĻŋ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ āĻĻ⧁āχāĻŦāĻžāϰ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻšāϝāĻŧ⧇āϛ⧇ āĻ•āĻžāϰāĻŖ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ— āĻĻ⧁āχāϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ event_id āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇āĨ¤ āχāϤāĻŋāĻšāĻžāϏ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻŦāĻĻāϞ⧇ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āχāϭ⧇āĻ¨ā§āϟ āϞāĻŋāϖ⧇āύ quantity = -1 āĻāĻŦāĻ‚ āĻ•āĻžāϰāĻŖ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧇āύ "duplicate detected"āĨ¤ āĻāϤ⧇ āĻ…āĻĄāĻŋāϟ āĻŸā§āϰ⧇āχāϞ āĻ…āϟ⧁āϟ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āχāύāĻ­āϝāĻŧ⧇āϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻŦā§āϝāĻžāĻ–ā§āϝāĻžāϝ⧋āĻ—ā§āϝ āĻšāϝāĻŧāĨ¤\n\n## āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ: āύāĻŋāϰāĻžāĻĒāĻĻāĻ­āĻžāĻŦ⧇ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ, āĻŽāύāĻŋāϟāϰ, āĻāĻŦāĻ‚ āχāϟāϰ⧇āϟ āĻ•āϰ⧁āύ\n\nāϛ⧋āϟ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ: āĻāĻ•āϟāĻŋ āĻŽāĻŋāϟāĻžāϰ, āĻāĻ•āϟāĻŋ āĻĒā§āĻ˛ā§āϝāĻžāύ, āĻāĻ•āϟāĻŋ āĻ—ā§āϰāĻžāĻšāĻ• āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āϝ⧇āϟāĻŋ āφāĻĒāύāĻŋ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻā§‡āύāĨ¤ āϞāĻ•ā§āĻˇā§āϝ āĻšāϞ⧋ āϏāĻšāϜ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ — āφāĻĒāύāĻžāϰ āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞ⧋ Stripe-āϰ āϏāĻžāĻĨ⧇ āĻŽāĻžāϏ āĻĨ⧇āϕ⧇ āĻŽāĻžāϏ⧇ āĻŽā§‡āϞ⧇, āϕ⧋āύ⧋ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āϘāϟāύāĻž āĻ›āĻžāĻĄāĻŧāĻžāχāĨ¤\n\n### āϛ⧋āϟ āĻ•āϰ⧇ āĻŦāĻžāύāĻžāύ, āϤāĻžāϰāĻĒāϰ āĻļāĻ•ā§āϤ āĻ•āϰ⧁āύ\n\nāĻĒā§āĻ°ā§āϝāĻžāĻ•āϟāĻŋāĻ•ā§āϝāĻžāϞ āĻĒā§āϰāĻĨāĻŽ āϰ⧋āϞāφāωāϟ:\n\n- āĻāĻ•āϟāĻŋ āχāϭ⧇āĻ¨ā§āϟ āĻļ⧇āĻĒ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰ⧁āύ (āĻ•āĻŋ āĻ•āĻžāϟāĻž āĻšāĻšā§āϛ⧇, āϕ⧋āύ āχāωāύāĻŋāĻŸā§‡, āϕ⧋āύ āϏāĻŽāϝāĻŧ⧇)āĨ¤\n- āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāϭ⧇āĻ¨ā§āϟ āχāωāύāĻŋāĻ• idempotency āϕ⧀ āĻ“ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āϏāĻš āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤\n- āχāύāĻ­āϝāĻŧ⧇āϏ āĻŦā§āϝāĻžāĻ–ā§āϝāĻžāϝ⧋āĻ—ā§āϝ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĻ⧈āύāĻŋāĻ• (āĻŦāĻž āϘāĻ¨ā§āϟāĻžāϰ) āĻŸā§‹āϟāĻžāϞ⧇ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ āĻ•āϰ⧁āύāĨ¤\n- Stripe-āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ reconcile āĻļāĻŋāĻĄāĻŋāωāϞ āĻ•āϰ⧇ āϚāĻžāϞāĻžāύ, āϕ⧇āĻŦāϞ āϰāĻŋāϝāĻŧ⧇āϞ-āϟāĻžāχāĻŽ āύāϝāĻŧāĨ¤\n- āχāύāĻ­āϝāĻŧ⧇āϏ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄāϟāĻŋ āĻ•ā§āϞ⧋āϜ āĻ•āϰāĻž āĻšāĻŋāϏ⧇āĻŦ⧇ āϧāϰ⧁āύ āĻāĻŦāĻ‚ āĻĻ⧇āϰāĻŋ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻĒāĻĨ āĻĻāĻŋāϝāĻŧ⧇ āύāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤\n\nāϕ⧋āύ⧋-āϕ⧋āĻĄ āϟ⧁āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇āĻ“, āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻ…āĻŦ⧈āϧ āĻ¸ā§āĻŸā§‡āϟāϗ⧁āϞ⧋āϕ⧇ āĻ…āϏāĻŽā§āĻ­āĻŦ āĻ•āϰ⧇ āĻĻ⧇āύ (āχāωāύāĻŋāĻ• āĻ•āύāĻ¸ā§āĻŸā§āϰ⧇āχāĻ¨ā§āϟ, āĻĢāϰ⧇āύ āĻ•āĻŋāϜ, āĻāĻŦāĻ‚ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āφāĻĒāĻĄā§‡āϟ āύāĻž āĻ•āϰāĻž), āϤāĻ–āύ āĻļāĻ•ā§āϤ āĻĄā§‡āϟāĻž āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰāĻŋāϟāĻŋ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻžāϟāĻž āϏāĻŽā§āĻ­āĻŦāĨ¤\n\n### āĻ­āĻŦāĻŋāĻˇā§āϝāϤ āĻŦāĻžāρāϚāĻžāϤ⧇ āĻŽāύāĻŋāϟāϰāĻŋāĻ‚\n\nāĻļ⧁āϰ⧁āϤ⧇āχ āϏāĻšāϜ āĻ…āĻĄāĻŋāϟ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āϝāĻ–āύ āϕ⧇āω āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰāĻŦ⧇, "āĻāχ āĻŽāĻžāϏ āφāĻŽāĻžāϰ āĻŦāĻŋāϞ āĻŦ⧇āĻļāĻŋ āϕ⧇āύ?" āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ⧇āχ āĻāϗ⧁āϞ⧋āχ āĻŽā§‚āĻ˛ā§āϝ āĻĻ⧇āϝāĻŧāĨ¤ āĻĻāϰāĻ•āĻžāϰ⧀ āĻ­āĻŋāωāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇: āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āĻ“ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āχāϭ⧇āĻ¨ā§āϟ āϏāĻžāĻ°ā§āϚ, āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ⧇āϰ āĻĒā§āϰāϤāĻŋ-āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻŸā§‹āϟāĻžāϞ, āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞ/āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϏāĻ™ā§āĻ—ā§€ āϤāĻĨā§āϝ āϕ⧇/āĻ•āĻ–āύ/āϕ⧇āύāĨ¤\n\nāφāĻĒāύāĻŋ āϝāĻĻāĻŋ AppMaster (appmaster.io) āĻĻāĻŋāϝāĻŧ⧇ āĻāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ, āϤāĻŦ⧇ āĻŽāĻĄā§‡āϞ āϏāĻšāĻœā§‡āχ āĻŽāĻžāύāĻžāϝāĻŧ: Data Designer-āĻ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ, āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ, āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ Business Processes āĻĻāĻŋāϝāĻŧ⧇ idempotent ingestion, āĻļāĻŋāĻĄāĻŋāωāϞāĻĄ aggregation, āĻāĻŦāĻ‚ webhook reconciliation āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āϤāĻ–āύāĻ“ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϞ⧇āϜāĻžāϰ āĻ“ āĻ…āĻĄāĻŋāϟ āĻŸā§āϰ⧇āχāϞ āĻĒāĻžāĻŦ⧇āύ, āϏāĻŦ āĻĒā§āϞāĻžāĻŽā§āĻŦāĻŋāĻ‚ āύāĻŋāĻœā§‡ āϞāĻŋāϖ⧇ āύāĻž āĻ•āϰ⧇āĻ“āĨ¤\n\nāĻĒā§āϰāĻĨāĻŽ āĻŽāĻŋāϟāĻžāϰ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻšāϞ⧇ āĻĒāϰ⧇āϰāϟāĻŋ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āĻāĻ•āχ āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āύ⧀āϤāĻŋ, āĻāĻ•āχ āĻ…āĻĄāĻŋāϟ āϟ⧁āϞ, āĻāĻŦāĻ‚ āĻāĻ•āχ āĻ…āĻ­ā§āϝāĻžāϏ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāϖ⧁āύ: āĻāĻ•āϏāĻ™ā§āϗ⧇ āĻāĻ• āϜāĻŋāύāĻŋāϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύāĨ¤

āĻĒā§āϰāĻļā§āύ⧋āĻ¤ā§āϤāϰ

āϕ⧇āύ Stripe-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦāĻŋāϞāĻŋāĻ‚ āĻ­āĻžāĻŦāĻžāϰāĻšā§‡āϝāĻŧ⧇āĻ“ āĻ•āĻ āĻŋāύ āϞāĻžāϗ⧇?

āχāϟāĻŋāϕ⧇ āϛ⧋āϟ āĻāĻ•āϟāĻŋ āĻ–āĻžāϤāĻžāĻŦāĻšāĻŋāϰ āĻŽāϤ āĻ­āĻžāĻŦ⧁āύāĨ¤ āϏāĻŽāĻ¸ā§āϝāĻž āĻ•āĻžāĻ°ā§āĻĄ āϚāĻžāĻ°ā§āϜ āĻ•āϰāĻž āύāϝāĻŧ; āĻŦāϰāĻ‚ āϏ⧇āϟāĻž āĻšāĻšā§āϛ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϏāĻ āĻŋāĻ• āĻ“ āĻŦā§āϝāĻžāĻ–ā§āϝāĻžāϝ⧋āĻ—ā§āϝ āϰ⧇āĻ•āĻ°ā§āĻĄ āϰāĻžāĻ–āĻž āĻšāĻŦ⧇ āϝāĻž āĻĻ⧇āĻ–āĻžāϝāĻŧ āϕ⧋āύ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ — āĻŦāĻŋāĻļ⧇āώāϤ āϝāĻ–āύ āχāϭ⧇āĻ¨ā§āϟ āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏ⧇, āĻŦāĻžāϰāĻŦāĻžāϰ āφāϏ⧇ āĻŦāĻž āϏāĻ‚āĻļā§‹āϧāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧāĨ¤

Stripe āύāĻž āφāĻŽāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āĻ¸â€”āϕ⧋āύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ-āφāϧāĻžāϰāĻŋāϤ āĻĄā§‡āϟāĻžāϰ āϏ⧋āĻ°ā§āϏ āĻ…āĻŦ āĻŸā§āϰ⧁āĻĨ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ?

āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāϞ⧋: āφāĻĒāύāĻžāϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ⧇āϰ āĻ‰ā§ŽāϏ; āφāϰ Stripe āĻšāϞ⧋ āϝ⧇ āχāύāĻ­āϝāĻŧ⧇āϏ āĻāĻŦāĻ‚ āĻĒ⧇āĻŽā§‡āĻ¨ā§āϟ āĻĢāϞāĻžāĻĢāϞ Ø­Ų‚ÛŒŲ‚ØĒ āĻ…āύ⧁āϏāĻžāϰ⧇ āϜāĻžāύāĻžāϝāĻŧāĨ¤ āĻāχ āĻŦāĻŋāĻ­āĻžāϜāύāϟāĻŋ āĻŦāĻŋāϞāĻŋāĻ‚āϕ⧇ āĻŸā§āϰ⧇āϏ⧇āĻŦāϞ āϰāĻžāϖ⧇, Stripe-āĻāϰ āĻĒ⧇āĻŽā§‡āĻ¨ā§āϟ, āĻŸā§āϝāĻžāĻ•ā§āϏ āĻāĻŦāĻ‚ āϏāĻ‚āĻ—ā§āϰāĻš āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āϕ⧋āύāϟāĻŋ āĻ­āĻžāϞ idempotency key (event_id) āĻšāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ?

āĻāϟāĻŋ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻŦāĻžāύāĻžāύ āϝāĻžāϤ⧇ āĻāϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āϧāĻžāϰāύāϝ⧋āĻ—ā§āĻ¯â€”āϝāĻžāϤ⧇ āϰāĻŋāĻŸā§āϰāĻžāχ āĻ•āϰāϞ⧇ āĻāĻ•āχ āφāχāĻĄāĻŋ āĻĢāĻŋāϰ⧇ āφāϏ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāϟāĻŋ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇, āϝ⧇āĻŽāύ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāϰ āφāχāĻĄāĻŋ + āĻŽāĻŋāϟāĻžāϰ āϕ⧀ + āϏ⧋āĻ°ā§āϏ āϰ⧇āĻ•āĻ°ā§āĻĄ āφāχāĻĄāĻŋ, āϝāĻžāϤ⧇ āĻāĻ•āχ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĒ⧁āύāσāĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰāϞ⧇ āϏ⧇āϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āύ⧋-āĻ…āĻĒ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āϕ⧀āĻ­āĻžāĻŦ⧇ āφāĻŽāĻŋ āϭ⧁āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ āĻŋāĻ• āĻ•āϰāĻŦ āχāϤāĻŋāĻšāĻžāϏ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϞ⧇āĻ–āĻž āύāĻž āĻ•āϰ⧇?

āĻ—ā§āϰāĻšāĻŖāĻ•ā§ƒāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞāĻŋ āĻŽā§āĻ›āĻŦ⧇āύ āĻŦāĻž āϏāϰāĻžāϏāϰāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧāĻ•āĻžāϰ⧀ (compensating) āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āχāϭ⧇āĻ¨ā§āϟ āϞāĻŋāϖ⧁āύ (āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇ āύ⧇āϗ⧇āϟāĻŋāĻ­ āĻĒāϰāĻŋāĻŽāĻžāĻŖāϏāĻš) āĻāĻŦāĻ‚ āĻŽā§‚āϞ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ…āϟ⧁āϟ āϰāĻžāϖ⧁āύ, āϝāĻžāϤ⧇ āĻĒāϰ⧇ āχāϤāĻŋāĻšāĻžāϏ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻž āϏāĻšāϜ āĻšāϝāĻŧāĨ¤

āφāĻŽāĻžāϕ⧇ āĻ•āĻŋ āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇ āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟ āĻ“ āϏāĻ‚āĻ•āϞāĻŋāϤ āĻŸā§‹āϟāĻžāĻ˛â€”āĻĻ⧁āĻŸā§‹āχ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇?

āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ append-only āϰāĻžāϖ⧁āύ, āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟāϏ āφāϞāĻžāĻĻāĻž āϰāĻžāϖ⧁āύ āϝāĻžāϤ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇ āĻĒ⧁āύāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟāϏ āĻĻā§āϰ⧁āϤāϤāĻžāϰ āϜāĻ¨ā§āϝ āĻĨāĻžāϕ⧇; āĻ•āĻžāρāϚāĻž āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻĄāĻŋāϏāĻĒāĻŋāωāϟ āĻ“ āĻ…āĻĄāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒāϰāĻŋāĻšāĻžāĻ°ā§āϝāĨ¤

āφāĻŽāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĻ⧇āϰāĻŋāϤ⧇ āφāϏāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĄā§‡āϟāĻž āĻŦāĻž āĻŦā§āϝāĻžāĻ•āĻĢāĻŋāϞāϏ āĻŽā§‹āĻ•āĻžāĻŦ⧇āϞāĻž āĻ•āϰāĻŦ?

āĻ…āĻ¨ā§āϤāϤ āĻĻ⧁āϟāĻŋ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āϰāĻžāϖ⧁āύ: āĻ•āĻ–āύ āĻāϟāĻŋ āϘāĻŸā§‡āĻ›āĻŋāϞ (occurred_at) āĻāĻŦāĻ‚ āĻ•āĻ–āύ āφāĻĒāύāĻŋ āϤāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āϛ⧇āύ (ingested_at), āĻāĻŦāĻ‚ āϏ⧋āĻ°ā§āϏ āĻŸā§āϝāĻžāĻ— āϰāĻžāϖ⧁āύāĨ¤ āϝāĻĻāĻŋ āχāύāĻ­āϝāĻŧ⧇āϏ āĻāĻ–āύāĻ“ āĻĢāĻžāχāύāĻžāϞ āύāĻž āĻšāϝāĻŧ, āĻĢāĻžāχāύāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āφāϗ⧇ āĻĒ⧁āύāσāĻšāĻŋāϏāĻžāĻŦ āĻ•āϰ⧁āύ; āϝāĻĻāĻŋ āĻĢāĻžāχāύāĻžāϞ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻļā§‹āϧāύ⧀ āĻšāĻŋāϏ⧇āĻŦ⧇ āϧāϰ⧁āύ (āĻ…ā§āϝāĻžāĻĄ-āĻ…āύ āϚāĻžāĻ°ā§āϜ āĻŦāĻž āĻ•ā§āϰ⧇āĻĄāĻŋāϟ) āĻāĻŦāĻ‚ āϕ⧋āύ⧋āĻ­āĻžāĻŦ⧇ āĻ—ā§‹āĻĒāύāĻ­āĻžāĻŦ⧇ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤

āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻ›āĻžāĻĄāĻŧāĻž Stripe āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰāĻŦ?

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āĻĒ⧇āĻāϞ⧋āĻĄ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ Stripe-āϰ event id-āϕ⧇ āχāωāύāĻŋāĻ• āϕ⧀ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ idempotent āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰ⧁āύāĨ¤ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻŦāĻž āφāωāϟ-āĻ…āĻĢ-āĻ…āĻ°ā§āĻĄāĻžāϰ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻžāχ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰāϕ⧇ āϕ⧇āĻŦāϞ āϏ⧇āχ āĻ¸ā§āĻŸā§‡āϟāĻšā§‡āĻžā§āϜāϗ⧁āϞ⧋āχ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇āϗ⧁āϞ⧋ āϰ⧇āĻ•āĻ°ā§āĻĄāϕ⧇ āĻāĻ—āĻŋāϝāĻŧ⧇ āύāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āϕ⧀āĻ­āĻžāĻŦ⧇ āφāĻŽāĻŋ āφāĻĒāĻ—ā§āϰ⧇āĻĄ, āĻĄāĻžāωāύāĻ—ā§āϰ⧇āĻĄ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŽāĻŋāϟāĻžāϰāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞ āĻ•āϰāĻŦ?

Stripe-āϰ āĻŦāĻŋāϞāĻŋāĻ‚ āĻĒāĻŋāϰāĻŋāϝāĻŧāĻĄā§‡āϰ āĻļ⧁āϰ⧁ āĻ“ āĻļ⧇āώ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϝāĻ–āύ āĻĻāĻžāĻŽ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϝāĻŧ āϤāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āϏāĻžāĻŦ-āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāύāĻ­āϝāĻŧ⧇āϏ āϞāĻžāχāύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻž āĻāĻŦāĻ‚ āĻŽā§‚āĻ˛ā§āϝ āϝāĻžāϚāĻžāχāϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āύāĻŋāϝāĻŧ⧇ āĻĨāĻžāĻ•āĻž āωāϚāĻŋāϤ āϝ⧇āύ āĻŸā§‹āϟāĻžāϞ āĻŦā§āϝāĻžāĻ–ā§āϝāĻžāϝ⧋āĻ—ā§āϝ āĻĨāĻžāϕ⧇āĨ¤

āϞāĻžāχāĻ­ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϜāĻžāύāĻŦ āφāĻŽāĻžāϰ āĻŽā§‡āϟāĻžāϰāĻŋāĻ‚ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āύāĻŋāϰāĻžāĻĒāĻĻ?

āĻāĻ•āϟāĻŋ āĻ•ā§āϝāĻžāϞāϕ⧁āϞ⧇āĻļāύ āϰāĻžāύ āφāχāĻĄāĻŋ āĻŦāĻž āϏāĻŽāϤ⧁āĻ˛ā§āϝ āĻŽā§‡āϟāĻžāĻĄāĻžāϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āφāĻĒāύāĻŋ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻŸā§‹āϟāĻžāϞ āĻĒ⧁āύāϰāĻžā§Ÿ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāĻ•āχ āωāχāĻ¨ā§āĻĄā§‹ āφāĻŦāĻžāϰ āϚāĻžāϞāĻžāϞ⧇ āϝāĻĻāĻŋ āĻŸā§‹āϟāĻžāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϏāĻŽā§āĻ­āĻŦāϤ idempotency āĻŦāĻž āϞāĻžāχāĻĢāϏāĻžāχāϕ⧇āϞ āĻ¸ā§āĻŸā§‡āϟ-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϏāĻŽāĻ¸ā§āϝāĻž āφāϛ⧇āĨ¤

āφāĻŽāĻŋ āĻ•āĻŋ AppMaster āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āϕ⧋āĻĄ āĻ›āĻžāĻĄāĻŧāĻž āĻāχ āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ āĻ“ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻĢā§āϞ⧋ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ?

Data Designer-āĻ āĻ•āĻžāρāϚāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āχāϭ⧇āĻ¨ā§āϟ, āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āϟ, āĻ…ā§āϝāĻžāĻĄāϜāĻžāĻ¸ā§āϟāĻŽā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻ“āϝāĻŧ⧇āĻŦāĻšā§āĻ• āχāύāĻŦāĻ•ā§āϏ āĻŸā§‡āĻŦāĻŋāϞ āĻŽāĻĄā§‡āϞ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ Business Processes-āĻ āχāύāĻœā§‡āĻ¸ā§āϟ āĻ“ reconcile āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ idempotency-āĻāϰ āϜāĻ¨ā§āϝ āχāωāύāĻŋāĻ• āĻ•āύāĻ¸ā§āĻŸā§āϰ⧇āχāĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āĻāϤ⧇āχ āφāĻĒāύāĻŋ āĻāĻ• āĻ…āĻĄāĻŋāĻŸā§‡āĻŦāϞ āϞ⧇āϜāĻžāϰ āĻāĻŦāĻ‚ āĻļāĻŋāĻĄāĻŋāωāϞāĻĄ reconciliation āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ, āĻšāĻžāϤ⧇āϰ āϞ⧇āĻ–āĻž āĻĒā§āϞāĻžāĻŽā§āĻŦāĻŋāĻ‚ āĻ›āĻžāĻĄāĻŧāĻžāχāĨ¤

āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϏāĻšāϜ
āĻ•āĻŋāϛ⧁ āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ•āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇āϰ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āϏāĻš āĻ…ā§āϝāĻžāĻĒāĻŽāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤
āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻšāĻŦ⧇āύ āϤāĻ–āύ āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ• āϏāĻĻāĻ¸ā§āϝāϤāĻž āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

āĻāĻŦāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžāĻ•
Stripe-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ-āφāϧāĻžāϰāĻŋāϤ āĻŦāĻŋāϞāĻŋāĻ‚: āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĄā§‡āϟāĻž āĻŽāĻĄā§‡āϞ | AppMaster