Skip to content

Overview

We support every protocol

  • gRPC — Thanks to Connect, all APIs are accessible to tools from the entire gRPC ecosystem, interoperating seamlessly with Envoy, grpcurl, gRPC Gateway, gRPC-Web, and every other gRPC implementation.
  • REST — Thanks to Vanguard, we seamlessly support REST.
  • GraphQL — Lastly, thanks to Tailcall, they are all accessible via GraphQL.

Services

  • Tailcall GraphQL Mesh on port 8000
  • Workflow “Starter” on port 8081
  • Domain microservices
    • Org µService on port 9090
    • User Profile µService on port 9091
    • License µService on port 9092

Each µService (“microservice”) supports basic CRUD operations.

Mutations

The recommended way of creating resources in batch is by using a Temporal workflow. GraphQL provides the faintest illusion of ACID properties, since it allows clients to issue multiple writes in one HTTP request; however, per the GraphQL spec, the selection set is executed serially. It is for this reason we recommend creating data through a Temporal workflow.

mutation CreateWorkflow {
createOnboardingWorkflow(
input: {
org: {
name: "Kevin's Org"
}
profile: {
fullName: "Kevin Chen"
}
license: {
start: "2024-01-01T15:50-04:00"
end: "2024-01-07T15:50-04:00"
}
}
) {
workflowId
orgId
profileId
licenseId
}
}