TEKNINEN KATSAUS · INSINÖÖREILLE

CartSome
konepellin alla.

CartSome on kokonainen verkkokauppa – kauppasivusto, kassa, toimitukset ja hallinta – jota ohjaat jo käyttämästäsi tekoälysovelluksesta. Sen ovat rakentaneet ihmiset, jotka rakentavat pankkeja, ja se on nopea, koska mittaamme sitä. Pinnan alla: solu, joka palvelee kauppoja, ohjaustaso, joka pyörittää alustaa, jyrkkä raja niiden välissä, oma skeema joka kaupalle ja solut, joihin mahtuu kuhunkin muutama sata kauppaa. Tässä kerromme, miten palaset sopivat yhteen, mihin tekoäly saa koskea ja miten kauppa muuttaa sisään. Tekstiä kirjoitettaessa ei vahingoitettu ainuttakaan muotisanaa.

Lyhyesti
  • Pankkien rakentajien tekemä
  • Kaupoilla ja alustalla omat coret
  • Skeema ja kaksi tunnusta joka kaupalle
  • Noin 300 kaupan solut
  • 314 kauppatoimintoa MCP:n kautta, kumottavissa
01 DNA

Tekijöinä
pankkien rakentajat.

Nopeus on DNA:ssamme. Niin on sekin, ettei rahasi katoa. CartSomen ovat rakentaneet ihmiset, jotka rakentavat pankkeja, ja se näkyy arkisissa paikoissa: rahalla ja varastolla on yksi kirjoittaja, jokaisesta teosta jää jälki, jokaista isoa kirjoitusta edeltää esikatselu ja jokaisen väitteen takana on luku.

  • Ensin oikein, sitten nopeastiRahalla ja varastolla on yksi kirjoittaja, shop-core. Maksut tarkistetaan palvelimella, eikä selaimen sanaan luoteta koskaan, ja selain laskee summansa kokonaisina sentteinä.
  • Kaikesta jää jälkiJokainen käyttöoikeuden myöntäminen ja poisto kirjataan samassa transaktiossa kuin itse teko, ja jokainen operaattorin teko alustan kirjausketjuun.
  • Tylsää tarkoituksellaPostgreSQL, Java, puhdas SQL ja Terraform: työkaluja, jotka ovat olemassa vielä kymmenen vuoden päästä, eikä yhtään nokkelaa välikerrosta, jota pitäisi selvittää kello 3 yöllä.
  • Mitattu, ei arvattuJokainen muutos siihen, miten kauppasivusto lukee dataa, mitataan 500 000 tuotteen valikoimalla ennen julkaisua. Aavistus on se, mistä mittaus alkaa, ei koskaan se, mihin se päättyy.

Nopea, ja portit pitävät sen nopeana

Listaussivu250 ms

on välimuistittoman listaussivun aikabudjetti p95-tasolla 500 000 tuotteen valikoimalla. Suodatus, vieritys tai haku saa 150.

Lighthouse, mobiili0

asettelun muutosta autotools.ee:n etusivulla ja tuotesivuilla, ja estoaikaa alle 30 ms. Mitattu 29. lokakuuta 2026.

Sivun paino1 KiB

enemmän kuin main-haarassa riittää kaatamaan sivun nopeusportilla.

  • Renderöity palvelimella, välimuistissa reunallaSivut saapuvat HTML:nä ostajan kielellä, ja shop-core pitää listaus- ja tuotesivut lämpiminä Valkeyssa.
  • Tavubudjetti CI:ssäKauppasivuston aloituspaketti, sovelluskuori ja jokainen reittipaketti pidetään budjetissa jokaisessa muutoksessa, ja budjetti voi vain pienentyä. Jokainen kieli on omassa paketissaan, joten ostaja lataa vain yhden.
  • Nopeusportti ennen julkaisuaSe rakentaa main-haaran ja muutoksen rinnakkain ja hylkää sivun, joka painaa enemmän tai hidastuu Lighthousessa latauksen, asettelun muutoksen tai estoajan osalta.
  • Pahimman tapauksen porttiJokainen teema-asetus raskaimmillaan, jokainen osiotyyppi yhtä aikaa, eikä kauppa silti saa hidastua. Teemat ovat CSS-muuttujia, joten teema ei tuo mukanaan lainkaan JavaScriptiä.
  • Kevyet kuvatJokaisesta tuotekuvasta tehdään AVIF-versiot eri kokoihin, ja staattiset tiedostot lähtevät valmiiksi brotli-pakattuina.
Nopea myös kauppiaalle. Nopeus ei ole pelkkiä sivulatauksia. Yksi lause tekoälysovellukselle korvaa iltapäivän välilehtirumban: ”anna talvihoitotuotteista 15 % alennus tänä viikonloppuna” on esikatselu ja yksi kyllä, ei kaksitoista lomaketta.
02 RAKENNE

Kaksi puoliskoa.
Jyrkkä raja.

Useimmille alustoille kasvaa uusi palvelu jokaista ominaisuutta kohden. Me jaoimme täsmälleen yhdestä kohdasta: kaupat yhdelle puolelle, alusta toiselle. Kummallakin puoliskolla on oma sovelluksensa, oma corensa, oma tietokantatunnuksensa ja oma puolikkaansa avaimesta. Ja vanha sääntö pätee molemmin puolin: vain core kirjoittaa.

  • shop-core – solu, Java 25 ja Spring BootKauppojen datan ainoa kirjoittaja PostgreSQLissa, Valkeyssa ja S3:ssa. Jokainen hallinnan muutos, tuonti, maksu ja kaupan taustatyö kulkee sen kautta. Se on piilossa julkiselta internetiltä, tarkistaa itse jokaisen maksupalvelun webhookin ja allekirjoituksen ja avaa kauppojen sinetöidyt salaisuudet.
  • platform-core – ohjaustasoSama koodipohja koottuna toiseksi sovellukseksi omalla imagellaan: konsolin taustapalvelu, laskutus, organisaatiot ja käyttöönotto, alustan oma sähköposti ja ohjaustason taustatyöt. Sen tietokantatunnus ei ulotu yhdenkään kaupan skeemaan, eikä se aja migraatioita.
  • Solu-API niiden välissäCoret puhuvat keskenään kahden sisäisen oven kautta, yksi kumpaankin suuntaan, kummallakin oma salaisuutensa. Kumpikin ovi säilyttää vain hyväksymänsä salaisuuden SHA-256-tiivisteen, joten kumpikaan core ei pidä hallussaan mitään, mikä avaisi sen oman oven. Yhdenkään ostajan pyyntö ei odota ohjaustasoa.
  • shop web – TanStack Start, React, palvelinrenderöityRenderöi jokaisen kauppasivuston ostajan kielellä, kaupan hallinnan, admin MCP:n ja Trade API:n oven. Se lukee Valkeyta sekä PostgreSQLia kaupan omalla lukutunnuksella eikä kirjoita mitään muuta kuin kirjautumisistuntoja; jokainen muu kirjoitus menee shop-corelle.
  • Konsoli – oma sovelluksensaErillinen sovellus ja image admin.cartsome.comille, operaattori-MCP:lle, cartsome.comin lomakkeille ja Stripen webhookille. Sillä ei ole tietokanta-ajuria eikä yhdenkään kaupan salaisuuksia, ja se puhuu vain platform-corelle.
  • Reuna – CloudFront ja WAFSivut ovat välimuistissa reunalla, ja kuvat tulevat suoraan S3:sta. Sen takana oleva kuormantasaaja vastaa vain CloudFrontille, ohjaa jokaisen osoitteen sitä palvelevalle sovellukselle, ja yhteen kauppaan kohdistuva tulva pysäytetään jo reunalla, kauppaosoitteittain.
  • Aurora PostgreSQL 18, puhdas SQLEi ORM:ää missään. Myös kokotekstihaku toimii PostgreSQLissa, ostajan kielellä ja kirjoitusvirheet anteeksi antaen. Ei erillistä hakuklusteria, jota pitäisi paimentaa.
  • Valkey ja S3Valkeyssa ovat sivut, jotka shop-core lämmittää valmiiksi ennen ostajia. S3:ssa ovat tuotekuvat (AVIF-versiot), teemojen fontit, tuotesyöte joka kielelle ja lähtevän kaupan vientitiedosto.
  • Kontit ARMillaNeljä palvelua pyörii ECS Fargatessa, Gravitonilla, kukin omasta imagestaan, ja kuvien käsittelijät pyörivät Lambdassa, nekin ARMilla. Terraform kuvaa kaiken, eikä mitään ole naksuteltu kasaan konsolissa.

Kuvat jonossa

Sisään muuttava kauppa tuo mukanaan tuhansia kuvia, eikä uuden kaupan pitäisi hidastaa kenenkään kassaa sillä aikaa, kun niitä käsitellään. Siksi shop-core ei käsittele niitä itse.

  • Core vain jonottaaShop-core laittaa jokaisen kuvatehtävän SQS-jonoon ja kirjaa vastaukset sitä mukaa kuin ne palaavat, erissä, yksi transaktio kauppaa kohden. Käsittelijöillä ei ole lainkaan tietokantatunnusta.
  • Reilu jono joka kaupalleJokainen kauppa on oma ryhmänsä SQS:n reiluissa jonoissa: pikakaista kuvalle, jonka pääkäyttäjä lataa, ja massakaista tuonneille, kummassakin kauppakohtainen katto. Yhden kaupan iso tuonti ei koskaan seiso toisen kaupan yhden valokuvan edessä.
  • Sama kooderi, enemmän käsiäLambda-käsittelijät ajavat saman libvips-koodauksen kuin core, joten kuva näyttää samalta riippumatta siitä, kuka sen käsitteli. Lataukset tahditetaan lähdepalvelimittain, jottei toimittajan palvelinta hukuteta pyyntöihin.
  • Käsitellään kerran, käytetään kaikkiallaKuva tunnistetaan sen tavujen tiivisteestä. Kun jokin solun kauppa on jo käsitellyt saman lähdekuvan, käsittelijät käyttävät sen tiedostoja uudelleen sen sijaan, että koodaisivat kuvan taas.
  • Tehty ruuhkaa vartenKäsittelijöiden joukko kasvaa, kun moni kauppa muuttaa sisään yhtä aikaa, eikä maksa levossa mitään, ja hallinta näyttää jokaisen ajon reaaliajassa: valmiit, uudelleen käytetyt, epäonnistuneet, odottavat ja ajon paikan jonossa.
Tuonnit ovat vieraita, eivät isäntiä. Jokainen taulu kuuluu yhteen luokkaan: ydin, kanava, johdettu tai kirjausketju. Toimittajan syöte tai tuonti on kanava: se kirjoittaa samojen operaatioiden kautta kuin pääkäyttäjä, ja kun sen poistaa, tuotevalikoima jää ehjäksi ja johdonmukaiseksi. Data säilyttää merkityksensä riippumatta siitä, kuka sen kirjoitti.
03 KARTTA

Koko komeus
yhdellä sivulla.

Kuka puhuu kenellekin, ostajan puhelimesta levyihin asti. Yhtenäiset viivat kuljettavat pyyntöjä ja kirjoituksia; katkoviivat vain lukevat.

CartSomen infrastruktuuri Operaattorit, ostajat, muiden yritysten järjestelmät, tekoälysovellukset ja kauppojen pääkäyttäjät saapuvat CloudFrontin ja WAF:n muodostamalle reunalle. Solussa 1, Tukholmassa, kuormantasaaja ohjaa konsolin osoitteet konsolille ja jokaisen kaupan osoitteen shop webille. Konsoli puhuu platform-corelle, ohjaustasolle. Shop web lukee PostgreSQLia ja Valkeyta ja antaa jokaisen kirjoituksen shop-corelle, solulle. Coret puhuvat keskenään Solu-API:n kautta, oma salaisuus kumpaankin suuntaan. Shop-core kirjoittaa Aurora PostgreSQLiin, Valkeyhin ja S3:een ja jonottaa kuvatyöt käsittelijöille, jotka kirjoittavat S3:een; platform-core kirjoittaa alustan skeemaan omalla tunnuksellaan. Solu 2 avataan tarvittaessa millä tahansa AWS-alueella. Kaavion alla oleva luettelo kertoo saman sanoin. OperaattoritCARTSOMEN TIIMIKONSOLI · MCP OstajatIHMISET JATEKOÄLYAGENTIT YritysostajatYRITYSJÄRJESTELMÄTOMALLA AVAIMELLA Oma tekoälysiCLAUDE · CHATGPTCURSOR · GEMINI PääkäyttäjätHALLINTASELAIMESSA Reuna – CloudFront + WAFVÄLIMUISTI · TLS: *.CARTSOME.COM JA OMAT VERKKOTUNNUKSET · RAJAT KAUPPAOSOITTEITTAIN SOLU 1 · TUKHOLMA (EU-NORTH-1) · TUOTANNOSSA KuormantasaajaVASTAA VAIN CLOUDFRONTILLE · OHJAA OSOITTEEN MUKAAN konsoliADMIN.CARTSOME.COMOPERAATTORI-MCP · SIVUSTON APIEI KAUPPOJEN SALAISUUKSIA shop webTANSTACK START · SSR · JOKAINEN KAUPPASIVUSTOKAUPAN HALLINTA · ADMIN MCP · OSTOS-MCPTRADE API:N OVI platform-coreOHJAUSTASOKONSOLI · LASKUTUS · KÄYTTÖÖNOTTOALUSTAN POSTI · OMA TUNNUS shop-core – solu, ainoa kirjoittajaJAVA 25 · SPRING BOOT · TARKISTAA JOKAISEN WEBHOOKINAVAA KAUPPOJEN KMS-SINETÖIDYN HOLVINTUNNUS JOKA KAUPALLE · KUVATYÖT JONOON SOLU-APISALAISUUSPER SUUNTA Kuvien käsittelijätSQS:N REILUT JONOT · RYHMÄ KAUPALLELAMBDA · LIBVIPS · EI TUPLATYÖTÄ Aurora PostgreSQLALUSTAN SKEEMA OMALLA TUNNUKSELLAANSKEEMA JA KAKSI TUNNUSTA JOKA KAUPALLE ValkeyLÄMPIMÄT SIVUT,KAUPOITTAIN S3KUVAT · FONTIT · SYÖTTEETKAUPPOJEN VIENNIT SOLU 2 · TARVITTAESSA · MIKÄ TAHANSA AWS-ALUESamat moduulit, uusi pino: avataan, kun solu 1 alkaa täyttyä, tai yhdelle isolle kaupalle. PYYNNÖT JA KIRJOITUKSETVAIN LUKUEI VIELÄ RAKENNETTU
Leveä kaavio · vieritä puhelimella sivusuunnassa

Kartta sanoin

  1. Kuka koputtaa. Ostajat (ihmiset ja tekoälyn ostosagentit), muiden yritysten järjestelmät Trade API:n kautta, kauppiaan tekoälysovellus, kauppojen pääkäyttäjät ja CartSomen operaattorit tulevat kaikki sisään reunan kautta.
  2. Reuna. CloudFront tallentaa sivut välimuistiin, tarjoilee kuvat suoraan S3:sta ja pitää hallussaan varmenteet jokaiselle *.cartsome.com-osoitteelle ja jokaisen kaupan omalle verkkotunnukselle, ja sen WAF rajoittaa jokaista kauppaosoitetta erikseen.
  3. Kuormantasaaja vastaa vain CloudFrontille. Se ohjaa jokaisen kaupan osoitteen shop webille sekä admin.cartsome.comin ja cartsome.comin API:n konsolille.
  4. Shop web renderöi julkisivun, hallinnan ja admin MCP:n, julkisen MCP:n ostosagenteille, jonka kukin kauppa kytkee päälle itse, sekä Trade API:n oven. Se lukee PostgreSQLia ja Valkeyta ja antaa jokaisen kirjoituksen shop-corelle.
  5. Konsoli palvelee admin.cartsome.comia, operaattori-MCP:tä, cartsome.comin lomakkeita ja Stripen webhookia ja puhuu vain platform-corelle.
  6. Shop-core on solu: kauppojen datan ainoa kirjoittaja PostgreSQLissa, Valkeyssa ja S3:ssa. Se tarkistaa webhookit, avaa kauppojen holvin ja laittaa kuvatyöt jonoihin.
  7. Platform-core on ohjaustaso: organisaatiot, käyttöönotto, laskutus, alustan sähköposti ja sen taustatyöt, omalla tietokantatunnuksellaan. Soluun se ulottuu vain Solu-API:n kautta, oma salaisuus kumpaankin suuntaan.
  8. Kuvien käsittelijät ottavat tehtäviä SQS:n reiluista jonoista, joissa jokaisella kaupalla on oma ryhmänsä, koodaavat ne Lambdassa ja kirjoittavat tiedostot S3:een.
  9. Data: Aurora PostgreSQL alustan skeemalla ja jokaisen kaupan omalla skeemalla, Valkey kunkin kaupan lämpimine sivuineen ja S3 kuville, fonteille, syötteille ja vientitiedostoille.
  10. Solu 1 pyörittää tätä kaikkea tänään Tukholmassa. Solu 2 on sama pino uudelleen, ja se avataan, kun sitä tarvitaan, sillä AWS-alueella, jota sen kaupat tarvitsevat.

Pyynnön elinkaari

1

Osoite valitsee kaupan

Reuna välittää kaupan todellisen osoitteen. Shop web yhdistää sen yhteen kauppaan ja sitoo kaupan koko pyynnön ajaksi.

2

Lukeminen pysyy lähellä

Lämmin sivu tulee Valkeysta; kaikki muu luetaan kaupan omalla lukutunnuksella.

3

Kirjoitukset menevät shop-corelle

Web välittää kirjoituksen ja nimeää kaupan. Shop-core tarkistaa jaetun salaisuuden ja kirjoittaa sitten kaupan omalla tunnuksella.

4

Välimuistit pysyvät perässä

Shop-core poistaa välimuistista ne kaupan sivut, joihin muutos vaikuttaa, joten seuraava ostaja näkee uuden hinnan.

04 KAUPAN OMA SKEEMA

Oma kauppa.
Oma skeema.

Monta kauppaa, yksi tietokantaklusteri, nolla jaettua kauppataulua. Jokainen kauppa saa oman PostgreSQL-skeeman, ja tietokanta itse pitää naapurit loitolla.

  • Skeema ja kaksi tunnustaKauppa n asuu omassa skeemassaan, joka on rakennettu yhdestä pohjasta. Shop web kirjautuu kaupan lukutunnuksella, shop-core sen kirjoitustunnuksella, eikä kumpikaan ulotu mihinkään muuhun kauppaan. Platform-coren tunnus ei ulotu yhteenkään kauppaan.
  • Ei kauppasaraketta, jonka voisi unohtaaTaulut säilyttävät muotonsa skeeman sisällä: ei kaupan tunnistetta joka rivillä, ei suodatinta, jonka kysely voisi jättää pois. Viiteavaimet eivät koskaan poistu skeemasta.
  • SQL-lauseet eivät koskaan nimeä skeemaaTunnus, jolla yhteys kirjautuu, valitsee kaupan, ja yhteys palvelee yhtä kauppaa koko elinikänsä. Staattinen tarkistus pysäyttää koonnin, jos kyselyssä on skeeman nimi.
  • Yhteysaltaat, jotka avautuvat tarvittaessaJokainen kauppa saa omat pienet yhteysaltaansa, jotka avataan sen ensimmäisellä pyynnöllä ja suljetaan, kun kauppa hiljenee, joten tietokannan yhteysbudjetti rajaa sitä, kuinka moni kauppa on kiireinen yhtä aikaa, ei sitä, kuinka monta kauppaa on olemassa. Jokaisella kaupalla on myös oma pyyntöbudjettinsa, ja sen ylittänyttä kauppaa pyydetään yrittämään uudelleen – vain sitä.
  • Välimuistit ja linkit tuntevat kauppansaJokaisen välimuistimerkinnän avaimessa on kauppa. Istunnot, tilauslinkit, lahjakorttilinkit ja uutiskirjeen peruutustunnisteet allekirjoitetaan kaupan omilla avaimilla, joten yhden kaupan linkki hylätään toisessa.
  • Vuototestisarja, joka kokeilee oviaSe luo kahdelle kaupalle rivin jokaiseen kauppakohtaiseen tauluun ja lukee kummankin rivit toisen kaupan nimissä, sekä shop-coren että shop webin yhteyksillä, ja kutsuu sitten jokaista coren päätepistettä, joka ottaa vastaan tunnisteen. Se ajetaan jokaisessa muutoksessa.
Miksi ei rivitason suojausta? Mittasimme sen 500 000 tuotteen valikoimalla. Istuntoasetukseen perustuva käytäntö pudotti kokoteksti-, trigrammi- ja normalisoitujen koodien haut pois indekseiltään: ne hidastuivat keskimäärin 4,5–7,6-kertaisesti. Kauppakohtainen skeema ei tarvitse predikaattia lainkaan, joten haku pysyy nopeana.
05 SOLUT

Soluja, ei
yhtä isoa möhkälettä.

Skaalaamme soluina. Solu on kokonainen pino: oma Aurora-klusteri, oma shop-core ja shop web, sen kauppojen skeemat sekä omat kuvajonot ja käsittelijät. Kun yksi täyttyy, avaamme seuraavan. Ohjaustaso on erillään ja puhuu solulle vain Solu-API:n kautta. Alusta kasvaa; yhdenkään solun ei tarvitse.

Tiheys~300

kauppaa yhteiskäyttöisessä solussa. Mitattu, ei arvattu: 1 000 kaupan testisolusta loppui muisti kahdesti.

Tänään1

solu: solu 1, AWS:n Tukholmassa. Autotools asuu siellä, ja toistaiseksi niin asuu jokainen uusikin kauppa.

Seuraavaksin

solua lisää, samoista Terraform-moduuleista rakennettuina ja tarpeen mukaan avattuina sillä AWS-alueella, jota niiden kaupat tarvitsevat.

Mitä ”täynnä” tarkoittaa

Solu ei ota uusia kauppoja, kun mikä tahansa näistä saavuttaa ylärajansa. Kun mikä tahansa raja on 80 prosentissa, suunnittelemme seuraavan solun; konsolin Solu-sivu näyttää täyttöasteen reaaliajassa ja nimeää signaalin.

Signaalit siitä, että solu on täynnä
SignaaliTäynnä, kun
Kaupatsolussa on noin 300 kauppaa
Tietokannan kapasiteettiAurora toimii lähellä kattoaan minuuttikausia
Yhteydetyhteysbudjetti ylittäisi sen, mitä klusteri sallii
Kauppojen yhteysaltaatkaupoilta evätään yhteyksiä, vaikka tietokannassa on vielä varaa
Välimuistin muistiValkey lähestyy muistikattoaan
Migraatiotmigraatioaalto solun skeemojen yli epäonnistuu tai pysähtyy
  • Iso kauppa saa oman solunKauppa, joka kasvaa yhteiskäyttöistä solua suuremmaksi, saa solun itselleen. Autotools pysyy solussa 1.
  • Siirrettävä jo rakenteeltaanKaikki, mitä kauppa omistaa, on nimetty kaupan mukaan: sen skeema omine avaimineen ja sekvensseineen, sen organisaation alle sinetöidyt holvirivit, sen välimuistiavaimet, sen syötetiedostot. Mikään ei sido sitä soluun, jossa se syntyi.
  • Rehellisyyden nimissäKaupan siirto solusta toiseen ei ole vielä yhden napin takana. Se tulee toisen solun mukana, eikä tiellä ole mitään jaettua.
06 TIETOTURVA

Lukossa oletuksena.
Tylsää tarkoituksella.

Kaupassa kiinnostavinta pitäisi olla tuotteet. Tässä tylsä osuus – sillä tarkkuudella, jolla sen mielellämme julkaisemme.

  • Eristys tietokannassaKauppakohtaiset skeemat ja tunnukset, joita valvovat PostgreSQLin käyttöoikeudet eikä koodi, jonka pitäisi muistaa suodatin. Ohjaustasolla on oma tunnuksensa, eikä shop-coren tunnuksella ole mitään oikeuksia ohjaustason tauluihin.
  • Sinetöity holvi joka organisaatiolleMaksu-, kuljetus- ja sähköpostipalvelujen avaimet ovat holvissa, kukin sinetöity AES-256-GCM:llä tuoreella data-avaimella, jonka tuottaa vain kahden coren käytettävissä oleva KMS-avain, ja sidottu omaan organisaatioonsa ja nimeensä. Kopioitu rivi ei aukea missään. Salaisuudet eivät koskaan asu koodissa.
  • Kummallakin corella puolet avaimestaShop-core avaa kauppojen salaisuudet ja platform-core alustan omat, kuten sen Stripe- ja kirjanpitoavaimet. Avaimen käytäntö epää kummaltakin toisen puolikkaan.
  • Kaksi ovea, kaksi salaisuuttaCoret kutsuvat toisiaan yhdellä salaisuudella kumpaankin suuntaan, ja kumpikin ovi tallentaa vain hyväksymänsä salaisuuden SHA-256-tiivisteen, joten kumpikaan core ei pidä hallussaan sitä, mikä avaa sen oman oven.
  • Pääsyavaimet alustan pyörittäjilleOperaattorit kirjautuvat pääsyavaimilla ja vahvistavat jokaisen alustan muutoksen uudella tunnistautumisella. Käyttöoikeuden myöntäminen ei ole koskaan työkalu: mikään token eikä mikään tekoäly voi lisätä operaattoria.
  • Tekoälyn kirjoitukset, jotka näet ja voit peruaMassamuutokset ja ulospäin näkyvät kirjoitukset ajetaan ensin esikatseluna, ja ne toteutetaan vahvistuksella, joka on sidottu siihen, mitä näit; jos kauppa muuttui välissä, vahvistus hylätään. Sen jälkeen jokaisen kirjoituksen vastaus kertoo, miten se kumotaan.
  • Tokeneilla mahdollisimman pieni avainnippuJokaisella admin MCP -tokenilla ja -yhteydellä on valtuutensa, ja se näkee vain ne työkalut, jotka valtuudet sallivat. Hyvitykset, salaisuudet ja pääkäyttäjät vaativat kukin oman valtuutensa.
  • Asiakkaat pysyvät poissa keskustelustaTyökalun vastaus kulkee tekoälypalvelun tarjoajalle, joten vastauksista jätetään pois ostajien nimet, sähköpostiosoitteet, puhelinnumerot, osoitteet ja verotunnisteet. Harvat erikseen mainitut poikkeukset, kuten tilauskommentin teksti, on nimetty säännöissä.
  • Kirjausketju jokaisesta operaattorin teostaJokainen operaattorin tekemä muutos ja jokainen kauppojen rajat ylittävä luku päätyy alustan kirjausketjuun.
07 AIVOT

314 toimintoa.
Nolla lomaketta.

Admin MCP antaa tekoälysovellukselle 314 kauppatoimintoa, ja jokainen niistä löytyy myös selaimen hallinnasta. Yhdistä Claude, ChatGPT, Cursor, Gemini tai mikä tahansa muu MCP-asiakasohjelma kirjautumalla tai liittämällä tokenin. Kytkin on pois päältä, kunnes pääkäyttäjä kääntää sen päälle.

01 / VALIKOIMA

Valikoima ja hinnoittelu.

Tuotteet, tuoteperheet, tagit, valikot, ominaisuudet, tuonnit, hintasäännöt, alennusmyynnit, tuotepaketit ja kupongit. tag_products, manage_family, explain_price.

02 / TILAUKSET

Tilaukset ja varasto.

Etsi tilaus, vie sitä eteenpäin, kommentoi, pyydä lähetystarrat; varastot, saldot, toimittajatilaukset ja yritysasiakastilit. Hyvitykset vaativat oman valtuutensa.

03 / KAUPPASIVUSTO

Sisältö ja kauppasivusto.

Etusivun asettelut, sivut, blogi, UKK, teema, tiedotteet, hakusanat ja se, mitä hakukoneet ja tekoälyavustajat lukevat.

04 / MARKKINOINTI

Markkinointi ja sähköposti.

Uutiskirjelomake, kampanjat, tervetulosarja, automaatiot ja viestipohjat. Kampanja ajastetaan vasta esikatselun jälkeen.

05 / ASETUKSET

Asetukset ja käyttöönotto.

Kielet, markkina-alueet, toimitus, kassa, kirjautuminen, sovellukset ja avaamista edeltävä tarkistuslista. manage_languages, set_shop_open.

06 / KUVAT

Kuvastudio.

Piirtää kuvia tuotteille, kategorioille, kuvakaruselleihin ja sähköpostibannereihin omia valokuviasi mallina käyttäen ja näyttää sovellukselle, mitä piirsi, ennen kuin kuva päätyy minnekään.

Turvamalli

1

Lue

Sovellus lukee kaupan sellaisena kuin se on. Jokaisella kirjoituksella on lukutoiminto, joka näyttää sen tarvitsemat tunnisteet.

2

Esikatsele

Massamuutos tai ulospäin näkyvä kirjoitus kertoo ensin, mitä se muuttaisi – määrän ja otoksen – eikä muuta mitään.

3

Vahvista

Sinä sanot kyllä. Muutosta tehtäessä kauppa tarkistetaan uudelleen, ja esikatselu, joka ei enää vastaa kaupan tilaa, hylätään.

4

Kumoa

Vastauksessa on mukana kumoaminen valmiiksi kirjoitettuna kutsuna, joka palauttaa asiat ennalleen. Ne harvat, joita ei voi kumota, kertovat miksi: lähetetty sähköposti, palautetut rahat, vaihdettu avain.

Valtuudet muovaavat pinnan

Token näkee vain ne työkalut, jotka sen valtuudet kattavat, joten kapea token on sekä pieni pinta että pieni valta. Tagit ja valikot ovat eri valtuuksia, koska julkaistu valikko muuttaa heti sen, mitä ostajat näkevät. Blogikirjoituksen luonnostelu ja julkaisu ovat kaksi eri valtuutta. Mikään, mitä tekoäly voi tehdä, ei vahvista kirjanpidon kirjausta; sen tekee ihminen hallinnassa.

Esimerkkejä

Pyydät

”Näytä uusi Bosch-valikoima kaupassa.”

list_products set_shown_in_shop

Tulos: esikatselu piilotetuista tuotteista merkeittäin, sitten yksi kutsu, joka näyttää koko valikoiman, ja tunnisteet, joilla sen saa taas piiloon.

Pyydät

”Siirrä vanhan sivustoni osoitteet niin, että Google löytää yhä jokaisen tuotteen.”

check_redirects import_redirects

Tulos: vanha vientitiedostosi tarkistettuna rivi riviltä, ketjut yhdistettyinä yhdeksi hypyksi, vastineettomat listattuina sinulle ja sitten koeajo ennen kuin mitään tallennetaan.

Pyydät

”Piirrä talvibanneri ja laita kampanja valmiiksi perjantaiksi.”

generate_image draft_campaign schedule_campaign

Tulos: banneri näytettynä keskustelussa, kampanjaluonnos ja ajastus vasta, kun olet nähnyt sen esikatselun.

↑ Esimerkkipyyntöjä · mainitut työkalut ovat oikeita

Kaksi muuta MCP:tä. Operaattorit pyörittävät alustaa konsolin omalla MCP:llä, jota yksikään kaupan token ei tavoita. Lisäksi jokainen kauppa voi kytkeä päälle julkisen MCP:n tekoälyn ostosagenteille, jotta ne voivat lukea sen valikoimaa ja täyttää ostoskorin.
08 KAUPASTA KAUPPAAN

Kaupasta kauppaan.
Ilman välikättä.

Jokainen kauppa voi avata yritysasiakkailleen Trade API -rajapinnan: neutraalin, versioidun HTTP-rajapinnan, jota heidän omat järjestelmänsä kutsuvat lukeakseen valikoiman omilla hinnoillaan ja tehdäkseen tilauksia. Ja mikä tahansa kauppa voi ostaa mistä tahansa toisesta kaupasta, joka puhuu sitä, kuin yhdeltä toimittajalta lisää.

  • Protokolla, ei brändiLöydettävissä osoitteesta /.well-known/trade-api, itse rajapinta polun /trade/v1 alla, OpenAPI 3.1 -dokumentti eikä minkään alustan nimeä missään. Myyjä, joka puhuu sitä, on myyjä, pyöritti sitä mikä tahansa.
  • Avaimet, jotka asiakas luo itsePääkäyttäjä hyväksyy yrityksen yritysasiakastiliksi, kiinnittää hintatason, jolla se ostaa, ja sallii rajapinnan. Asiakas luo ja mitätöi omat avaimensa tilisivullaan; kauppa säilyttää vain tiivisteen, eikä yksikään pääkäyttäjä näe avainta koskaan.
  • Heidän hintansa, todellinen saldoJokainen tuote hinnoitellaan täsmälleen niin kuin kauppasivusto hinnoittelee sen kirjautuneelle asiakkaalle, ja vieressä on kauppasivuston myytävissä oleva saldo, katolla rajattuna.
  • Tilaukset, jotka eivät tuplaannuJokaisella tilauksella on idempotenssiavain: sama avain ja sama sisältö palauttavat ensimmäisen tilauksen, ja eri sisältö hylätään. Siitä eteenpäin se on kaupan tavallinen tilaus, joka laskutetaan, pakataan ja lähetetään tuttuun tapaan.
  • Osta mistä tahansa kaupastaYleinen tukkutoimittajaliitin tekee myyjästä yhden toimittajan lisää: sen saldot ja hinnat luetaan aikataulun mukaan, tilaukset lähtevät idempotenssiavaimella, ja vahvistukset ja toimitukset luetaan takaisin. Se kutsuu myyjän julkista osoitetta kuin kuka tahansa vieras, ei koskaan oikotietä solun sisällä.
  • Lyhyt talutushihnaAvainkohtaiset rajat pyynnöille ja tilauksille, katto maksamattomille tilauksille, ja yhden kaupan avain on toisessa kaupassa vieras. Jokainen tiliin, käyttöoikeuteen ja avaimeen liittyvä teko päätyy kaupan kirjausketjuun, ja asiakas saa tiedon jokaisesta uudesta avaimesta.
  • Rehellisyyden nimissäWebhookeja ei vielä ole: ostaja kyselee itse, mikä on muuttunut. Toistaiseksi tilaukset maksetaan ennakkolaskulla; ostaminen maksuajalla tulee myöhemmin.
Molemmat ovet, kuten aina. Trade API:n asetukset, yritysasiakastilit ja käyttöoikeudet löytyvät hallinnasta ja admin MCP:stä, omien valtuuksiensa takana.
09 UUSI KAUPPA

Kauppa minuuteissa.
Auki, kun olet valmis.

Ei asennusohjelmaa eikä palvelinta valittavaksi. Lisäämme organisaatiosi alustan konsoliin, kauppa rakentaa itsensä, ja sinä jatkat siitä.

1

Organisaatio ja kauppa

Yrityksesi, kaupan nimi ja sen pääkieli. Oman verkkotunnuksen voi lisätä nyt tai myöhemmin.

2

Kauppa rakentaa itsensä

Sen skeema, tunnukset, allekirjoitusavaimet ja syötepolku luodaan pyynnön ulkopuolella, taustalla. Aluksi kauppa on suljettu yleisöltä.

3

Osoite heti

kauppasi.cartsome.com vastaa heti, kun kauppa on aktiivinen: yksi jokerimerkkivarmenne, ei DNS-vaihetta.

4

Avain ja ensimmäinen pääkäyttäjä

Kertakäyttöinen käyttöönottoavain luovutetaan henkilökohtaisesti tai puhelimessa, ei koskaan sähköpostilla. Ensimmäinen pääkäyttäjäsi avaa /setup-sivun ja luo pääsyavaimen.

5

Ennen avaamista

Maksut Montonion kautta, toimitushinnat, kielet, kaupan tiedot ja yksi ostettavissa oleva tuote. Jokainen vaihe on sivu ja MCP-työkalu.

6

Auki, sitten oma osoite

Avaa kauppa, kun tarkistuslista on valmis. Ohjaa verkkotunnuksesi yhdellä DNS-tietueella, niin lisäämme sen reunalle; kun se vastaa, siitä tulee pääosoite.

Kielet kytkimen takana. Uusi kauppa aloittaa pääkielellään ja viroksi. Kytke mikä tahansa 8 kielestä päälle, kun sen käännökset ovat valmiit, kohdassa Asetukset › Kielet tai manage_languages-työkalulla. Tuotteella on sama osoite joka kielellä.

10 MUUTTO

Tuo kauppasi.
Pidä paikkasi Googlessa.

Autotools muutti Shopifysta, ja CartSomessa pyörii tänään sen yli 25 000 tuotetta. Samat työkalut, joita se tarvitsi, saat sinäkin.

  • Tuotteet: tekoäly muuntaa, ihminen tarkistaaTekoälysovelluksesi lukee tuontimuodon, kaupan sanaston ja toimittajan datan ja kirjoittaa tiedoston, jonka kaupan oma tarkistin hyväksyy. Se pysähtyy ja nimeää jokaisen aukon sen sijaan, että keksisi kategorian. Ihminen käy läpi, mikä täsmäsi ja mikä on uutta, ja vain hänen nimeämänsä tuonti toteutetaan – vahvistamalla esikatselu, jonka hän on lukenut.
  • Piilossa, kunnes sanot näytäUudet tuotteet saapuvat piilotettuina. Yksi esikatseltu kutsu tuo näkyviin kokonaisen, enintään 5 000 tuotteen valikoiman.
  • Vanhat osoitteet ohjataan uusiinAnna Shopifyn uudelleenohjausvienti tai mikä tahansa kaksisarakkeinen luettelo. Jokainen rivi täsmätään samalla tavalla kuin kauppasivusto etsii osoitteita, ketjut yhdistetään yhdeksi pysyväksi uudelleenohjaukseksi, ja jokainen kohde tarkistetaan kaupan omia sivuja vasten.
  • Shopify-siirtymän työkalupakkiSiirtymätyökalumme ottavat vanhasta sivustosta tilannekuvan, rakentavat vanhojen ja uusien osoitteiden kartan sekä raportin siitä, mitä jäi jäljelle, ja kysyvät sitten uudelta kaupalta jokaisen rivin: vaaditaan yksi 301-ohjaus sivulle, joka vastaa. Autotools siirsi näin 12 598 vanhaa osoitetta.
  • Uutiskirjesuostumukset siirretään kerranMarkkinointilista siirtyy kaupan suostumusrekisteriin jokaisen henkilön vastauksen kanssa sellaisenaan. Siirron aikana ei lähetetä mitään.
  • Mikä jää taakseVanhat tilaukset jäävät vanhalle alustalle. Säilytä alustalta otettu vientitiedosto kirjanpitoasi varten.

Esimerkkimuutto

1. viikko

Aloitus

Pääsy vanhaan kauppaan ja sopimus siitä, mitä siirretään.

1. viikko

Siirto

Valikoima, kuvat ja asiakkaat uuteen kauppaan sen cartsome.com-osoitteeseen.

2. viikko

Sinun tarkistuksesi

Vanha kauppa uutta vastaan sivu sivulta sekä testitilaus. Korjaamme, mitä löydät.

2. viikko

Vaihto

Uudelleenohjaukset tarkistetaan, sitten yksi DNS-tietue. Vanha kauppa myy siihen hetkeen asti.

↑ Esimerkki · valikoimasi koko määrää tahdin

Näin muutto etenee
11 KYSYMYKSET

Insinöörit kysyvät.
Me vastaamme.

Mistä pino tarkalleen koostuu?

Kahdessa coressa Java 25 ja Spring Boot, shop webissä ja konsolissa TanStack Start ja React 19, lisäksi Aurora PostgreSQL 18, Valkey 9, S3 ja CloudFront sekä kuvien käsittelijöille SQS ja Lambda. Palvelut pyörivät ECS Fargatessa ARMilla, kaikki Terraformilla kuvattuna. Puhdasta SQL:ää kaikkialla: ei ORM:ää.

Kuinka nopea se oikeasti on?

Aja Lighthouse autotools.ee:lle itse. Puhelinprofiililla 29. lokakuuta 2026 etusivun ja tuotesivujen asettelun muutos oli nolla, estoaika alle 30 ms ja saavutettavuuden, parhaiden käytäntöjen ja SEO:n pisteet 100; cartsome.com sai 100 pistettä kaikissa neljässä kategoriassa. Taustalla: tavubudjetti CI:ssä, nopeusportti ja pahimman tapauksen portti ennen julkaisua sekä listaussivujen 250 ms:n budjetti p95-tasolla 500 000 tuotteen valikoimalla.

Miksi core jaettiin kahtia?

Jotta kaupan liikenne ja alustan liiketoiminta eivät koskaan jaa prosessia tai tietokantatunnusta, eikä kumpikaan puoli voi avata toisen salaisuuksia. Shop-core palvelee kauppoja eikä voi avata alustan salaisuuksia; platform-core pyörittää konsolia ja laskutusta eikä voi lukea yhtäkään kauppaa. Jos ohjaustaso on nurin, kaupat myyvät edelleen.

Onko alusta monivuokrainen, ja kuinka eristetty kauppa on?

On. Jokaisella kaupalla on oma PostgreSQL-skeemansa ja omat kaksi tunnustaan, joten eristys on tietokannan tehtävä eikä koodissa oleva suodatin. Välimuistit, istunnot ja allekirjoitetut linkit on sidottu kauppaan, ja vuototestisarja lukee jokaisen kauppakohtaisen taulun toisen kaupan nimissä jokaisessa muutoksessa.

Mitä tapahtuu, kun solu täyttyy?

Se lakkaa ottamasta uusia kauppoja, ja seuraava solu avataan. Suunnittelemme sen, kun mikä tahansa signaali (kaupat, tietokannan kapasiteetti, yhteydet, välimuistin muisti, migraatiot) saavuttaa 80 prosenttia ylärajastaan, joten solu lakkaa ottamasta kauppoja ennen kuin se on täynnä.

Missä datani on?

Tänään Amazon Web Servicesin Tukholman alueella (eu-north-1). Kauppasi rivit ovat kauppasi omassa skeemassa ja sen avaimet organisaatiosi sinetöidyssä holvissa.

Saanko datani ulos?

Saat. Kun kauppa lähtee, sen koko skeema viedään pg_dumpilla, ja pg_restore lukee tiedoston mihin tahansa PostgreSQL 18 -tietokantaan.

Voivatko yritysasiakkaani tilata omista järjestelmistään?

Voivat, kun sallit sen. Hyväksy heidät yritysasiakastiliksi, niin he luovat omat Trade API -avaimensa, lukevat valikoimasi omilla hinnoillaan ja tekevät tilauksia, kukin idempotenssiavaimella, joten uusintayritys ei koskaan tilaa kahdesti.

Päätyvätkö asiakastiedot tekoälypalveluni tarjoajalle?

Eivät, ja se on suunniteltu niin. Työkalujen vastauksista jätetään pois ostajien nimet, sähköpostiosoitteet, puhelinnumerot, osoitteet ja verotunnisteet, ja testit kaatuvat, jos jokin niistä livahtaa mukaan. Erikseen mainitut poikkeukset ovat tilauksen tapahtumat, kommentin teksti ja henkilökunnan nimet kommenteissa.

Voiko tekoäly hyvittää tilauksen tai vaihtaa maksuavaimen?

Vain tokenilla, jonka olet luonut juuri tällä valtuudella. Hyvitykset ovat oma valtuutensa; salaisuudet ja pääkäyttäjät onnistuvat vain liitetyllä tokenilla, jonka pääkäyttäjä on luonut tarkoituksella, eivät koskaan yhden klikkauksen sovellusyhteyden kautta.

Mitkä tekoälysovellukset toimivat?

Mikä tahansa sovellus, joka puhuu MCP:tä: muun muassa Claude, ChatGPT, Cursor ja Gemini. Ne yhdistetään kirjautumalla tai liitetyllä tokenilla, ja ne näkevät vain ne työkalut, jotka niiden valtuudet sallivat.

Miten haku toimii ilman hakuklusteria?

PostgreSQLin kokotekstihaku ostajan kielellä sekä trigrammivertailu kirjoitusvirheille ja osanumeroille. Yksi ylläpidettävä järjestelmä vähemmän, ja haku mitataan 500 000 tuotteen valikoimalla ennen kuin muutokset julkaistaan.

Voiko alustaa laajentaa?

Voi. Asenna tarkastettu sovellus sovelluskaupasta tai rakenna oma tekoälysovelluksesi avulla. Jokainen sovellus toimii omassa hiekkalaatikossaan ja asentuu pois päältä kytkettynä.

VALMIINA, KUN SINÄ OLET

Tehdään
kaupasta kiinnos­tavaa.

Kerro kaupastasi. Me hoidamme muuton, ja juttelet suoraan alustan rakentavien insinöörien kanssa.

Jutellaan