Deploying Kanject BaaS

Kanject BaaS modules deploy into your AWS account, not ours. Each module ships as a NuGet package plus a CloudFormation template; you provision them once per environment and your service code talks to them like any internal dependency.

Workflow

01
Pick a module
Identity, Wallet, NotificationHub, Insights, FileServer, Forms, InstantMessaging, EventHub, or Identity.Server.
02
Provision
One CloudFormation deploy per module, per AWS account. Templates are idempotent — re-deploys are safe.
03
Wire it up
Add the matching `Kanject.<Module>` package, register via `AddKanject<Module>()` in `Program.cs`.
04
Use the API
Inject the module's client interface anywhere in your service — same DI patterns as Kanject.Core.

Multi-region deployments

Each BaaS module supports multi-region deployment via the --region flag on the CloudFormation provisioner. Kanject.Core.NoSqlDatabase's Namespace option keeps tenant data isolated across regions; Kanject.EventHub replicates events via SNS cross-region subscriptions.

Per-module guides

  • Kanject.Identity — Cognito user pool + JWT issuance + RBAC. See the per-product page at /baas/identity.
  • Kanject.Identity.Server — Self-hosted OAuth/OIDC provider built on AWS primitives. /baas/identity-server.
  • Kanject.Wallet — Double-entry ledger, multi-currency, holds and payouts. /baas/wallet.
  • Kanject.NotificationHub — Multi-channel delivery (email, SMS, push, in-app) with templates. /baas/notifications.
  • Kanject.Insights — Event-driven analytics with cohort and funnel queries. /baas/insights.
  • Kanject.FileServer — S3-backed storage with CDN, signed URLs, virus scanning. /baas/fileserver.
  • Kanject.Forms — Schema-as-code form builder backend. /baas/forms.
  • Kanject.InstantMessaging — WebSocket chat with presence and history. /baas/im.
  • Kanject.EventHub — Typed pub/sub on EventBridge with replay. /baas/eventhub.

Cost model

You pay AWS for the underlying resources (DynamoDB, S3, Lambda, SNS, etc.) and Kanject for the libraries. Because the modules run in your account, there are no per-request, per-user, or per-message Kanject charges. AWS bills you the same as if you'd written the integration yourself.

Pro tip
Use the same appsettings.<Env>.json layered config across Core and BaaS modules — they read from the same IConfiguration surface, so a single deploy command can target staging or production.