3300.md INTRO Solutions — разработка сайтов, сервисов и интеграций INTRO Solutions — websites, services and integrations
Наши продуктыOur products
sms.3300.md →
Доставка сообщений для бизнеса: уведомления, коды подтверждения и рассылки по API. Business message delivery: notifications, verification codes and campaigns via API.
rentos365.app →
RentOS — операционная система проката и развлечений: смены, тарифы, аналитика, отчёты. RentOS — the operating system for rental and entertainment businesses: shifts, tariffs, analytics, reports.
eda.3300.md →
EDA — учёт для кафе, ресторана и бара: меню по QR, заказы на доставку, навынос и в зал, кухонный экран и касса. EDA — management for cafés, restaurants and bars: QR menus, delivery, takeaway and dine-in orders, kitchen display and POS.
memory365.app →
Memory365 — страницы памяти с QR-кодом на памятник, уход за могилами и учёт кладбищ. Memory365 — memorial pages with a QR code for the headstone, grave care and cemetery records.
Уход за пожилыми людьми и всеми, кому нужна помощь. Круглосуточно и по договору. Care for older people and anyone who needs help. Around the clock, under contract.
// в процессе: следующие строки этого файла уже пишутся // in progress: the next lines of this file are being written
// pay.3300.md — payment core export async function charge(tx) { const sig = await hmac(tx.id, KEY); "idempotency": ensure(tx.id); return gateway.post("/v1/charge", tx); } if (!tx.verified) throw new PayError(402); retry({ times: 3, backoff: "expo" }); webhook.emit("payment.succeeded", tx); ledger.append({ tx, ts: Date.now() }); // TODO: 3-D Secure flow const balance = await ledger.sum(acc); audit.log(tx.id, "charged"); // pay.3300.md — payment core export async function charge(tx) { const sig = await hmac(tx.id, KEY); "idempotency": ensure(tx.id); return gateway.post("/v1/charge", tx); } if (!tx.verified) throw new PayError(402); retry({ times: 3, backoff: "expo" }); webhook.emit("payment.succeeded", tx); ledger.append({ tx, ts: Date.now() }); // TODO: 3-D Secure flow const balance = await ledger.sum(acc); audit.log(tx.id, "charged");
# api.3300.md — gateway route "/v1/*" -> auth -> ratelimit token = jwt.sign(scope, exp: "33h") if req.key not in vault: deny(401) cache.set(etag, body, ttl=330) metrics.observe("latency_ms", dt) schema.validate(payload, strict=True) queue.publish("events.v1", msg) # openapi.yaml: 33 endpoints deploy(stage="canary", traffic=0.33) rollback_if(err_rate > 0.003) # api.3300.md — gateway route "/v1/*" -> auth -> ratelimit token = jwt.sign(scope, exp: "33h") if req.key not in vault: deny(401) cache.set(etag, body, ttl=330) metrics.observe("latency_ms", dt) schema.validate(payload, strict=True) queue.publish("events.v1", msg) # openapi.yaml: 33 endpoints deploy(stage="canary", traffic=0.33) rollback_if(err_rate > 0.003)
// status.3300.md — monitor probe("3300.md/crm", every: 30s) probe("sms.3300.md", every: 30s) probe("rentos365.app", every: 30s) uptime.window("90d").render() alert.telegram(on: "degraded") sla.target = 99.95 incident.timeline.publish() latency.p99 < 330ms ? ok : warn // history: 0 outages heartbeat.emit("alive") // status.3300.md — monitor probe("3300.md/crm", every: 30s) probe("sms.3300.md", every: 30s) probe("rentos365.app", every: 30s) uptime.window("90d").render() alert.telegram(on: "degraded") sla.target = 99.95 incident.timeline.publish() latency.p99 < 330ms ? ok : warn // history: 0 outages heartbeat.emit("alive")
МанифестManifest
3300 — это не количество. Это формула того, как мы работаем. 3300 is not a quantity. It is the formula of how we work.
Опыт и часовые поясаExperience and time zones
Сутки заканчиваются в 24:00. Мы продолжаем. 33:00 — работает дольше, чем длится день. A day ends at 24:00. We keep going. 33:00 — running longer than a day lasts.
Наш узелOur node
ChangelogChangelog
git log --oneline. Обновляется чаще, чем эта страница. git log --oneline. Updated more often than this page.