Skip to content
bitzorcas
EN

Guide

Overview

Platform modules — Files, Notifications, Webhooks, PlatformBilling, Catalog, Tickets, Chat.

Last updated

Seven platform modules are implemented today, each a bounded context with its own ports, adapters, and contracts assembly. Business modules (Cases, Billing, Workflow) are planned for future phases.

Implemented modules

ModulePurposeContractsKey ports
FilesFile asset management, presigned upload URLs, owner policiesFileAsset, FileAssetSummary, FileAssetStateIFileAssetRepository, IFileStorage
NotificationsIn-app notification inbox with severity and state trackingNotification, NotificationSummary, NotificationStateINotificationRepository, INotificationPublisher
WebhooksExternal event subscriptions, HMAC signing, delivery logs, retriesWebhookSubscription, WebhookDeliveryLog, WebhookSignatureIWebhookSubscriptionRepository, IWebhookDeadLetterQueue
PlatformBillingSaaS plans, subscriptions, entitlements, usage metering, invoicingPlan, PlatformSubscription, UsageRecord, PlatformInvoiceIPlatformBillingRepository
CatalogProduct catalog with categories, pricing, and plan mappingsCatalogItem, CatalogItemSummary, PriceModel, CategoryICatalogRepository
TicketsSupport tickets with lifecycle, comments, attachments, and status machineTicket, TicketStatus, TicketTransitionRulesITicketRepository, ITicketAttachmentAccessService
ChatChannels, messages, memberships, read markers, mentions, realtimeChatMessage, Channel, ChannelMembership, ReadMarkerIChatRepository, IChatRealtimeAdapter

Planned modules (future phases)

ModulePurpose
IdentityUser accounts, MFA, external identity federation
CasesLegal case management — the core business domain
BillingFinancial billing, invoice management, revenue protection
WorkflowCustom workflow engine core — definition, instance, tasks, gateways, SLA

The module five-piece suite

Every module follows the same structure per ADR 0017:

src/Modules/<Category>/<Module>/
BitzOrcas.<Module>.Contracts/ # Public contracts (DTOs, Integration Events, Constants)
BitzOrcas.<Module>.Domain/ # Domain model (entities, value objects, domain events)
BitzOrcas.<Module>.Application/ # Use cases (Commands, Queries, Handlers, Pipelines)
BitzOrcas.<Module>.Infrastructure/ # Persistence / external integration
BitzOrcas.<Module>.Endpoints/ # Minimal API endpoints + AddModule extension

Dependency direction is strictly unidirectional: Endpoints → Application → Domain. Cross-module communication goes through *.Contracts assemblies only.