Skip to main content

Platform map

Internal engineering docs for EventLinx. This site is a platform map and a record of ticketing behavior verified against staging. It is not a customer handbook, not an OpenAPI dump, and not a security/compliance manual.

Security and compliance material lives on client docs, not here.

Product repos​

LayerRepoRole
Patron UIeventlinx-patronVite patron site. Auth: Supabase JWT.
Promoter UIeventlinx-promoterVite promoter site. Auth: Supabase JWT.
Staff UIeventlinx-goExpo staff app. Auth: Supabase JWT.
System of recordeventlinx-api-eventCloudflare Worker. Events, performances, inventory, carts/holds, seat maps, scan/redeem/refund/transfer/exchange records, checkout orchestration.
Patron BFFeventlinx-api-patronGet Tickets, cart, checkout secret via Event. $0 / cash via eventlinx-api-stripe. Transfers live. Exchange routes exist; patron UI flag is off.
Promoter BFFeventlinx-api-promoterProxies Event for events/tickets/maps. Owns promoter org, collaborators, GO users, images, custom domains. Seat-map predict goes to seating-detect, not Event.
Staff BFFeventlinx-api-goCloudflare Worker BFF for the Expo app — not a Go-language service. Scan/POS/cart via Event; cash via Stripe API; Terminal PaymentIntent via Event.
Paymentseventlinx-api-stripePayments, cash, Terminal completion.
Identityeventlinx-api-authenticationIdentity service.
Seat detectapi-seating-detectImage → detect JSON (POST /upload). Detect JSON is not the Event persist schema.

End-user UIs talk to BFFs. Event is the system of record for ticketing state. BFFs do not replace Event as SoR.

Staging topology​

Same map in table form:

FromToWhy
Patron / Promoter / GO UIsSupabaseEnd-user session (JWT).
Patron UIpatron-apiGet Tickets, cart, checkout.
Promoter UIpromoter-apiEvents, tickets, maps, org, GO users.
GO appapi-goScan, POS, cart.
patron-api, promoter-api, api-goEventTicketing reads/writes. Service key, not the user JWT.
patron-api, api-goapi-stripe$0 / cash (and Stripe money movement). Terminal completion is Stripe; Terminal PI create from GO is via Event.
promoter-apiapi-seating-detectPredict only (/upload). Persist/sell/hold stay on Event.

What Event owns vs what it does not​

Owns: events, performances, GA quantity inventory, reserved seats (seatIds required), carts/holds, seat-map persist, scan/redeem/refund/transfer/exchange records, checkout orchestration.

Does not: end-user login (UIs use Supabase), promoter org/collaborators/custom domains (promoter-api), card capture / cash completion (api-stripe), seat-map predict (promoter-api → seating-detect). Event’s own seat-map predict is 501 / not mounted.

Patron exchange is not a shipped patron product​

Patron-api has exchange routes. The patron UI flag is off (self-serve exchange is shelved). Do not document or demo it as a live patron feature. Transfers are live on patron. GO blocks exchange into reserved seating.

Accuracy​

Prefer a link to Event OpenAPI (GET /doc, generated from src/routes.ts in eventlinx-api-event) over copying route tables here. Do not invent schemas or migrations. Behavior only.

Staging Event hosts: api-event.eventlinx.com, api-event-staging.eventlinx.com, api-event-dev.eventlinx.com. Other BFF hostnames are not listed here until they are confirmed in each repo’s wrangler config.