Download Game! Currently 65 players and visitors. Last logged in:ZhouyuKlarenceQumniDesert

Blitzer's Blog >> 71919

Back to blogs index
Posted: 01 Sep 2026 01:15 [ permalink ]
User@elli:/opt/edge$ {                                                  >
killall node
./start.sh
> }
KC$ynnistetC$C$n EDGE_API_GATEWAY (portti 3000)...                         API
Gateway kC$ynnistetty taustalle PID:llC$ 24227.                       Voit
seurata lokeja komennolla: tail -f /opt/edge/gateway.log          
user@elli:/opt/edge$ tail -f /opt/edge/gateway.log                     
[Server] Core initialized
[Server] IN bus created
[Server] Worker 0 spawned                                              
[Server] Worker 1 spawned                                              
[Worker 0] Starting...                                                 
[Worker 1] Starting...
{"level":30,"time":1788214312282,"pid":24227,"hostname":"elli","msg":"Server
listening at http://127.0.0.1:3000"}                              
{"level":30,"time":1788214312284,"pid":24227,"hostname":"elli","msg":"Server
listening at http://192.168.111.83:3000"}                         
{"level":30,"time":1788214312284,"pid":24227,"hostname":"elli","msg":"Server
listening at http://100.102.190.120:3000"}
{"level":30,"time":1788214312285,"pid":24227,"hostname":"elli","msg":"API
Gateway & Swagger pystyssC$!"

==[ Chrome ]==
http://100.102.190.120:3000/docs

>  * Generoida yksilC6llinen requestId.Explore

EDGE API GATEWAY - Lock-free RAM DB

1.0.0 OAS 3.0http://100.102.190.120:3000/docs/json

REST API tietokannan MVP:n ytimen hallintaan.

Documents

POST


GET


DELETE


PUT


==[ /Chrome ]==

Mahtavaa! SiellC$ ne ovat, kaikki neljC$ endpointtia tyylikkC$C$sti
listattuna! 
TC$mC$ todistaa, ettC$ asynkroninen kC$ynnistysjC$rjestys toimii nyt
tC$ydellisesti ja Fastify ehti jC$sentC$C$ kaikki REST-reitit
Swagger-spesifikaatioon ennen kC$yttC6liittymC$n kC$ynnistymistC$.
MitC$ voit tehdC$ nyt selaimessa:
Swagger ei ole vain staattinen dokumentaatio, vaan tC$ysin interaktiivinen
testityC6kalu. Voit kokeilla tietokantaasi suoraan selaimesta ilman
curl-komentoja:
 * Luo dataa (POST):
   * Klikkaa POST /api/v1/namespaces/{namespace}/documents auki.
   * Paina oikeasta ylC$kulmasta "Try it out".
   * Kirjoita namespace -kenttC$C$n esim. test.
   * Muokkaa body -kenttC$C$n haluamasi JSON (esim. {"sensor": "temp_1",
"value": 22}).
   * Paina sinistC$ Execute -nappia. NC$et vastauksessa luodun uid:n.
 * Hae dataa (GET):
   * Kopioi saamasi uid.
   * Avaa GET -reitti, paina "Try it out", liitC$ uid kenttC$C$n ja paina
Execute.
   * TC$mC$ haku ohittaa nyt Worker-sC$ikeet kokonaan ja hakee datan suoraan
jaetusta RAM-muistista (Lock-free Direct Read)!
Mihin suuntaamme seuraavaksi?
Nyt kun meillC$ on huippunopea ydin, toimiva viestivC$ylC$, arkkitehtuuridokume
ntaatio ja interaktiivinen API Gateway, olemme saavuttaneet erittC$in vahvan
virstanpylvC$C$n.
MitC$ haluaisit tehdC$ seuraavaksi?
 * A: LisC$tC$C$nkC6 API Gatewayhin regex-validaattori, joka torjuu
automaattisesti C$C$kkC6siC$ sisC$ltC$vC$t avaimet DESIGN.md:n uuden
ASCII-sC$C$nnC6n mukaisesti?
 * B: Asennetaanko autocannon (HTTP-kuormitustestaustyC6kalu) ja katsotaan,
kuinka monta kymmentC$ tuhatta pyyntC6C$ sekunnissa Gatewaymme ja lock-free
tietokantamme kestC$C$?
 * C: SiirrytC$C$nkC6 kehittC$mC$C$n ytimeen jotain uutta ominaisuutta (esim.
indeksit tai relaatiot)?


==

user@elli:/opt/edge$ tail -f /opt/edge/gateway.log
[Server] Core initialized                                              
[Server] IN bus created                                                
[Server] Worker 0 spawned                                              
[Server] Worker 1 spawned
[Worker 0] Starting...                                                 
[Worker 1] Starting...                                                 
{"level":30,"time":1788214312282,"pid":24227,"hostname":"elli","msg":"Server
listening at http://127.0.0.1:3000"}                              
{"level":30,"time":1788214312284,"pid":24227,"hostname":"elli","msg":"Server
listening at http://192.168.111.83:3000"}                         
{"level":30,"time":1788214312284,"pid":24227,"hostname":"elli","msg":"Server
listening at http://100.102.190.120:3000"}                        
{"level":30,"time":1788214312285,"pid":24227,"hostname":"elli","msg":"API
Gateway & Swagger pystyssC$!"}
{"level":30,"time":1788214337725,"pid":24227,"hostname":"elli","reqId":"req-1",
"req":{"method":"GET","url":"/docs","host":"100.102.190.120:3000","remoteAddres
s":"100.125.98.84","remotePort":45152},"msg":"incoming request"}
{"level":30,"time":1788214337766,"pid":24227,"hostname":"elli","reqId":"req-1",
"res":{"statusCode":200},"responseTime":38.07957600000009,"msg":"request
completed"}
{"level":30,"time":1788214337812,"pid":24227,"hostname":"elli","reqId":"req-2",
"req":{"method":"GET","url":"/docs/static/swagger-initializer.js","host":"100.1
02.190.120:3000","remoteAddress":"100.125.98.84","remotePort":45152},"msg":"inc
oming request"}
{"level":30,"time":1788214337821,"pid":24227,"hostname":"elli","reqId":"req-2",
"res":{"statusCode":200},"responseTime":8.283311999999569,"msg":"request
completed"}
{"level":30,"time":1788214337830,"pid":24227,"hostname":"elli","reqId":"req-3",
"req":{"method":"GET","url":"/docs/static/swagger-ui.css","host":"100.102.190.1
20:3000","remoteAddress":"100.125.98.84","remotePort":45162},"msg":"incoming
request"}
{"level":30,"time":1788214337895,"pid":24227,"hostname":"elli","reqId":"req-3",
"res":{"statusCode":304},"responseTime":61.78083699999843,"msg":"request
completed"}
{"level":30,"time":1788214337915,"pid":24227,"hostname":"elli","reqId":"req-4",
"req":{"method":"GET","url":"/docs/static/index.css","host":"100.102.190.120:30
00","remoteAddress":"100.125.98.84","remotePort":45164},"msg":"incoming
request"}
{"level":30,"time":1788214337926,"pid":24227,"hostname":"elli","reqId":"req-4",
"res":{"statusCode":304},"responseTime":11.07136200000241,"msg":"request
completed"}
{"level":30,"time":1788214337933,"pid":24227,"hostname":"elli","reqId":"req-5",
"req":{"method":"GET","url":"/docs/static/swagger-ui-bundle.js","host":"100.102
.190.120:3000","remoteAddress":"100.125.98.84","remotePort":45168},"msg":"incom
ing request"}
{"level":30,"time":1788214337944,"pid":24227,"hostname":"elli","reqId":"req-5",
"res":{"statusCode":304},"responseTime":10.36333999999988,"msg":"request
completed"}
{"level":30,"time":1788214337947,"pid":24227,"hostname":"elli","reqId":"req-6",
"req":{"method":"GET","url":"/docs/static/swagger-ui-standalone-preset.js","hos
t":"100.102.190.120:3000","remoteAddress":"100.125.98.84","remotePort":45182},"
msg":"incoming request"}
{"level":30,"time":1788214337961,"pid":24227,"hostname":"elli","reqId":"req-6",
"res":{"statusCode":304},"responseTime":12.965643999999884,"msg":"request
completed"}
{"level":30,"time":1788214338449,"pid":24227,"hostname":"elli","reqId":"req-7",
"req":{"method":"GET","url":"/docs/json","host":"100.102.190.120:3000","remoteA
ddress":"100.125.98.84","remotePort":45182},"msg":"incoming request"}
{"level":30,"time":1788214338517,"pid":24227,"hostname":"elli","reqId":"req-7",
"res":{"statusCode":200},"responseTime":66.23942700000043,"msg":"request