ΡΠΈΠΊΠ΅Ρ: https://next-t-code.atlassian.net/browse/MOT-439 ΠΈ https://next-t-code.atlassian.net/browse/PLT-4621
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: Π±ΡΠ»ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΊΠ΅ ΠΡΠΎΠΌ
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΏΠΈΠΊΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠ΅ΠΉ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ², ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π°ΡΡΠΈΠ»ΠΊΠΎΠΉ, ΠΏΠΈΡΡΠΌΠ° Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Ρ.ΠΏ. ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ CF Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΆΡΡΡΠΊΠΈΠ΅ ΡΠ΅ΠΉΡ Π»ΠΈΠΌΠΈΡΡ
- Π»ΠΈΠΌΠΈΡ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ip Π°Π΄ΡΠ΅ΡΠ° Π±ΡΠ» ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ Π΄ΠΎ 20
- Π²Π²Π΅Π΄Π΅Π½ Π»ΠΈΠΌΠΈΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ Π½Π° Ρ ΠΎΡΡΠ΅ (ΠΎΠ΄Π½ΠΎ Π·Π΅ΡΠΊΠ°Π»ΠΎ)
- Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π½Π½Ρ Π½Π° ΠΌΠΎΡΠΎΡ
- ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ:
- ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΡΠΈΡΠ΅Π½ΠΎΠ² Π² ΡΠΎΠΏΠΈΠΊΠ°Ρ
- prod.CorePlatform.ClientEvents
- Π±ΡΠ»ΠΎ: 4 partitions, 4 bonusservice consumers
- ΡΡΠ°Π»ΠΎ: 12 partitions, 12 bonusservice consumers
- prod.CorePlatform.ClientLoginV2
- Π±ΡΠ»ΠΎ: 4 partitions, 4 bonusservice consumers
- ΡΡΠ°Π»ΠΎ: 12 partitions, 12 bonusservice consumers
- prod.IntegrationProcessor.AffiliateUpdateEvents
- Π±ΡΠ»ΠΎ: 1 partition - 1 websitewebapi consumers
- ΡΡΠ°Π»ΠΎ: 4 partitions - 4 websitewebapi consumers
- prod.CorePlatform.ClientEvents
- Π integrationprocessor SmarticoClientNotificationPipeline Π΄Π΅Π»Π΅ΠΉ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠΌΠ°ΡΡΠΈΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ 30 ΡΠ΅ΠΊΡΠ½Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π½Π° 50ms
- ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΡΠΈΡΠ΅Π½ΠΎΠ² Π² ΡΠΎΠΏΠΈΠΊΠ°Ρ
Π‘ΠΎΠ±ΡΡΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π°ΡΡΠΈΠ»ΠΊΠΎΠΉ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π·Π° ΡΡΡΠΊΠΈ-ΠΏΠΎΠ»ΡΠΎΡΠ°. Π£ΡΠΊΠΎΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, Π½ΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ΄ΡΠΈ Π² Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠΏΠΈΠΊΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½ΠΈ Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π² Π°ΡΡΠΈΠ»ΠΊΡ, Π½ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠΈΡΠ΅ΠΌ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
ΠΎΡΠΊΠ°ΡΠΈΡΡ Π½Π°Π·Π°Π΄ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ consumers, Ρ.ΠΊ. Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Π½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Ρ ΠΈΠ·Π±ΡΡΠΊΠΎΠΌ (ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±ΡΠ»ΠΈ Π·Π°Π΄Π°Π½Ρ ΠΈΠ· ΡΠ°ΡΡΠ΅ΡΠ° 14-15ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ Π² ΡΠ°Ρ). ΠΠΎΡΠ»Π΅ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ:
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: race condition ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π½ΡΡΡΠΈ ΡΠΌΠ°ΡΡΠΈΠΊΠΎ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ° Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.
ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ confirmation mail Π² smartico
platform-api-services-integrationprocessor/Tech.IntegrationProcessor/Hosts/Smartico/SmarticoClientNotificationPipeline.cs:L73
Π€Π»ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΡΠΈΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠΎΠΏΠΈΠΊ, ΡΡΠΎΡ ΡΠΎΠΏΠΈΠΊ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΏΠΈ ΡΡΡΠΈΠΌ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΏΠΈΠΊ Π΄Π»Ρ ΡΠΌΠ°ΡΠΈΠΊΠΎ, ΡΠΌΠ°ΡΡΠΈΠΊΠΎ ΡΠΈΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΌΠ°ΡΡΠΈΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ confirmation mail. ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΡΠΌΠ° Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π½ΡΡΡΠΈ ΡΠΌΠ°ΡΡΠΈΠΊΠΎ (ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ confirmation mail ΡΠΊΠ°ΠΆΠ΅Ρ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅Ρ). ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: Π΄Π΅Π»Π°ΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΡΠΌΠ° ΡΡΠ°Π·Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎ β ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² retry ΡΠΎΠΏΠΈΠΊ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π· Π² 5 ΡΠ΅ΠΊΡΠ½Π΄). Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΊΠ΅ΠΉΡΡ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΌΠ°ΡΡΠΈΠΊΠΎ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ email-validation-service Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ Π΅ΠΌΠ΅ΠΉΠ»Π°.
ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π° ΡΠ°ΠΊ, ΡΠΎ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·).
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΠ° ΠΡΠΎΠΌΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ip validation service.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ, ΡΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ zerobounce, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°Ρ ΠΈ ΡΠ°ΠΊ ΡΠΆΠ΅ ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅ΡΡΡ.
update: ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π΄ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ rate limit Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠ½ΡΠΈΠΎΠ½Π°Π»Π° (ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠΏΠ°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠ΅ΠΉΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΎΠ΄Π½Ρ)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΠ° ΠΡΠΎΠΌΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π° Email Domain Typos.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π² Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ· Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΎΠ² Π² ΠΏΡΠΎΠ΄ΡΠΊΡ