soulwise_persons
Albumo įrašai. Indeksai pagal userId, status, deletedAt. Pirmiausia minkštas trynimas; asmens duomenų galutinis trynimas po 30 dienų.
Inžinieriams, produktų vadovams, žurnalistams ir partnerysčių žvalgams. Visas duomenų srautas, keturios MongoDB kolekcijos, EDA įvykiai, V-Model griežtumas, našumo tikslai, saugumas ir prieinamumas — viskas viename puslapyje.
Kiekvienas žingsnis turi paslaugą, kontraktą ir įvykį.
Vartotojo veiksmas — „sukurk šiandienos skyrių Seseriai“ — arba suplanuota cron užduotis, kaip sekmadienio 9 ryto apžvalga ar kas 6 valandas atnaujinama būsena.
Užduotis patenka į BullMQ eilę, pavadintą soulwise-chapter-generation, su griežtu 28 sekundžių laiko limitu. Ilgai trunkančios užduotys nutraukiamos ir vartotojui pranešama „bandyk dar kartą“.
ChapterGenerationService sujungia keturių veiksnių užklausą — asmens kontekstą, astrologiją, signalą ir ritmą — į vieną įvestį. Jokie neapdoroti vartotojo asmens duomenys į užklausą nepatenka tiesiogiai; viskas pirmiausia išvaloma.
DI tiekėjas iškviečiamas per AI_GENERATION_ADAPTER simbolio žymą — tiekėją galima pakeisti. Prieš tęsiant atsakymas patikrinamas dėl ilgio, formos ir saugumo.
Įvyksta keturi dalykai: krizių klasifikatorius tikrina, ar nėra krizinės kalbos; aspektų ženkliukų ištraukiklis paima nuo vieno iki trijų astrologinių ženkliukų; prieš teiginius nukreiptas filtras pašalina draudžiamas formuluotes; tekstas užšifruojamas AES-256 su platformos valdomu raktu.
Artefaktas įrašomas į atitinkamą MongoDB kolekciją — skyrius, dienoraščio įrašus, rezonansus — su userId ir personId indeksais greitai paieškai. Pirma — minkštas trynimas; asmens duomenų galutinis trynimas po 30 dienų.
EventEmitter2 įvykis — CHAPTER_COMPLETED, JOURNAL_CREATED — suveikia po duomenų bazės įrašymo. Pranešimų modulis jį pagauna, sukuria gautųjų elementą ir, esant poreikiui, išsiunčia push pranešimą (ne daugiau nei vienas per dieną, laikantis tylos valandų).
Sąsaja gauna artefaktą per autentifikuotą API užklausą. Centras iš naujo atvaizduojamas su nauju turiniu. Jei naudotojas buvo neprisijungęs, talpykla rodo vakarykštį vaizdą, o naujas artefaktas pasirodo vėl prisijungus.
Indeksuotos pagal užklausas, į kurias kiekviena atsako.
Albumo įrašai. Indeksai pagal userId, status, deletedAt. Pirmiausia minkštas trynimas; asmens duomenų galutinis trynimas po 30 dienų.
DI parašyti skyriai, šifruotas turinys. Indeksai pagal personId, userId, generatedAt. Aspektų žymos saugomos atskirame masyve, kad būtų galima greitai filtruoti.
Vartotojo parašytos refleksijos, šifruotas turinys. Indeksai pagal userId, personId, createdAt. Tekstu indeksuotas turinys paieškai. Kiekvienam įrašui — žyma „privatu — nesiųsti Luminarai".
Keturių dimensijų balai kiekvienam ryšiui. Unikalus indeksas pagal personId. Perskaičiuojama paslaugos iškvietimu po skyriaus ar dienoraščio įrašo.
Griežta taisyklė: įvykiai paleidžiami tik po duomenų bazės patvirtinimo (commit). Modulių tarpusavio priklausomybės – per Symbol injekcijos žetonus, niekada per forwardRef. Jokio tiesioginio paslaugų importavimo tarp funkcinių modulių.
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — paleidžiamas po to, kai skyrius užšifruojamas ir išsaugomas. Notifications-v2 klauso; sukuria gautųjų elementą; pasirinktinai siunčia push pranešimą.SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — paleidžiamas po to, kai dienoraščio įrašas užšifruojamas ir išsaugomas. Rezonanso paslauga klauso; suaktyvina perskaičiavimą.SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — paleidžiamas po to, kai pasikeičia asmens gimimo duomenys. Sinastrijya talpykla anuliuojama.SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — pagal notifications-v2 sutartį; paiso push biudžeto ir tylos valandų.119 atsekamų reikalavimų, nulis spragų. Kiekvienas reikalavimas susiejamas pirmyn su testo atveju (UTP, ITP, STP, E2E) ir atgal su naudotojo istorija. 20 naudotojo istorijos. 15 funkciniai reikalavimai. 12 nefunkcinės kategorijos. 8 globalūs priėmimo vartai.
Skyriaus generavimas – 30 sekundės ar greičiau 95% užklausų, matuojant pagal BullMQ užduočių trukmės pasiskirstymą. API p99 GET delsa – 500 ms ar mažiau esant 1,000 vienu metu prisijungusių naudotojų, matuojant k6 apkrovos testu. Vartotojo sąsajos TTI – 3 sekundės ar greičiau simuliuotame 4G tinkle, matuojant Lighthouse CI.
AES-256 šifravimas saugykloje su platformos valdomais raktais dienoraščio ir skyrių turiniui. TLS 1.2+ perdavimo metu; HTTP→HTTPS nukreipimas. JWT prieigos žetonai su 1 valandų galiojimu, atnaujinimo žetonai su 30 dienų galiojimu, rotacija atnaujinant. Švelnus trynimas su 30 dienų langu prieš galutinį asmens duomenų ištrynimą.
Nuostata „prefers-reduced-motion“ gerbiama visur — GSAP animacijos virsta vien skaidrumo perėjimais. „VoiceOver“ ir „TalkBack“ etiketės ant kiekvieno interaktyvaus elemento. Prieš kiekvieną leidimą rankiniu būdu patikrinama iOS ir Android sistemose.
Todėl, kad pirminė specifikacija perkuria šią funkciją, o perkūrimas esamame modulyje arba sugadintų v1 patirtį, arba vėliau priverstų atskirti ir vėl sulieti šakas. Naujas modulis palieka v1 nepaliestą, leidžia v2 pasitvirtinti ir švariai persikelti, kai bus pasiruošta.
Esama My Zodiac AI vidinė sistema veikia su MongoDB; perėjimas reikštų infrastruktūros sprendimą, nesusijusį su šia funkcija. Dokumentų modelis taip pat gerai tinka skyriams ir dienoraščio įrašams — įdėtiems, įvairaus ilgio, šifruojamiems kaip vientisas blokas.
BullMQ veikia su Redis, kuris jau yra naudojamas sesijoms ir užklausų dažnio ribojimui. Jokios naujos infrastruktūros. Įdiegtas pakartotinis bandymas, laiko limitas ir stebėsena padengia skyrių generavimo poreikius be papildomų sprendimų.
Vidinėje saugykloje. Šiame puslapyje pateikti skaičiai ir sutartys perfrazuoja pirminius V-modelio artefaktus. Vieši inžineriniai tinklaraščio įrašai My Zodiac AI tinklaraščio klasteryje (pažymėti „cosmic-story-v2“) išsamiau gilinasi į konkrečias kūrimo dalis.
Kol Soulwise atveria savo bangas, mūsų pagrindinė astrologijos programėlė jau yra tavo rankose.
Astrologinis turinys skirtas apmąstymams ir pramogai. Čia aprašytos „Cosmic Story v2“ funkcijos dar kuriamos; jų prieinamumas gali keistis be išankstinio įspėjimo.