Skip to main content
Case Study·(03)

Simpul Marketplace

Vendor KYB, booking workflows, and contextual LLM assistance

Project Scope
Platform Engineering
Year & Role
2025 · Backend & System Architect
Core Stack
Express.jsFlutterSupabase PostgreSQLPrisma ORMMidtrans
Simpul platform architecture diagram showing client layers, API gateway, Supabase database and external services
Figure 01 // Simpul platform architecture diagram showing client layers, API gateway, Supabase database and external services

The Problem

Wedding and event procurement in Indonesia suffers from extreme vendor fragmentation, lack of standardized verification, and opaque payment scheduling. Clients risk losing large upfront deposits to unverified vendors, while small vendors struggle with late invoices and complex booking administration.

I designed the backend architecture and data workflows for Simpul to provide structured booking milestones, verified vendor onboarding (KYB), and an intelligent consultation assistant that helps clients find suitable vendors within budget.

Simpul backend and service architecture
Fig // End-to-end architecture from mobile clients to database and third-party gateways

How It Works

The platform coordinates multiple user roles (clients, vendors, and platform admins) across transactional and conversational workflows.

(01)

Vendor Identity & Catalog Verification

Implemented an asynchronous verification pipeline requiring business entity documents, portfolio work proof, and bank account validation before public catalog indexing.

(02)

Milestone-Based Escrow Engine

Integrated payment webhooks with Midtrans to support milestone disbursements (down payment, progress checks, post-event completion) ensuring neither party is exposed to unilateral default.

(03)

Context-Constrained LLM Assistant

Built an NLP assistant that parses budget, guest count, and aesthetic preferences to query the vendor catalog using structured embeddings, preventing hallucination through strict context injection.

Decisions and Trade-offs

Relational integrity with Supabase and Prisma

While wedding packages vary significantly in structure, financial transactions and calendar reservations require strict relational constraints. We modeled core entities in PostgreSQL with Prisma ORM to guarantee zero double-booking and consistent ledger states, using JSONB fields only for flexible vendor package descriptions.

Token optimization for LLM queries

Instead of sending raw catalog dumps into the prompt window, user search criteria are mapped to pre-filtered candidate sets via vector similarity and pricing filters before reaching the LLM. This reduced prompt token usage by over 60% and eliminated out-of-budget recommendations.

// Security & Payment Webhooks

Midtrans payment webhooks are verified via SHA-512 signature hashing and idempotency keys stored in Redis, preventing duplicate transaction credits in unstable mobile network environments.

Results

Platform performance was evaluated under simulated multi-tenant loads and staging pilot deployments.

100%
Automated Webhook Idempotency
Zero duplicate orders during concurrent payment callbacks
TODO: add vendor count
Active Vendor Profiles
Staging pilot verification directory
< 180ms
API Endpoint Latency
P95 query response time across catalog search endpoints

Links and Code

The platform code repositories are maintained on GitHub: