Clean Architecture. Multi-tenant isolation. Immutable financial records. Asynchronous execution routing. Real-time communication. Every design decision made for regulated financial services.
The Atlas platform follows a Clean Architecture pattern with enforced dependency boundaries. The domain layer has zero external dependencies. Business logic lives in the application layer. Infrastructure concerns — database access, payment gateways, email services — are isolated behind interfaces.
This architecture ensures that core trading logic, compliance rules, and financial calculations are never coupled to specific database engines, cloud providers, or third-party services.
Every tenant-scoped entity carries a BrokerageId. EF Core global query filters automatically append WHERE BrokerageId = @currentTenant to every database query. No manual filtering. No accidental data leakage.
The tenant is resolved from the HTTP Host header before any authentication or business logic executes. Each brokerage maps to a custom domain. The TenantContext is then injected into the DbContext and all downstream services.
Each brokerage has independent configuration for fees, branding, compliance thresholds, trading settings, notification preferences, and more. Configuration is stored as structured JSON per brokerage — not global settings that affect all tenants.
Adding a new brokerage tenant requires no infrastructure changes, no new database instances, and no deployments. Domain mapping, role seeding, initial admin creation, and branding configuration — all handled through the platform management API.
The Atlas ledger is not merely append-only by convention — it is physically immutable. Database interceptors trap any UPDATE or DELETE attempt on ledger entries and audit logs, throwing an exception before the operation reaches the database.
Every financial event — trade fill, deposit, withdrawal, fee charge, adjustment — creates balanced debit/credit entries. Every entry links back to its source transaction for full traceability.
AuditLogImmutabilityInterceptor and LedgerImmutabilityInterceptor physically block modification attempts at the ORM level — before SQL is generated. This is not a soft constraint.
Atlas uses an adapter pattern for execution routing. Orders are queued via AWS SQS and processed asynchronously by background workers. The routing infrastructure supports multiple execution channels — configurable per brokerage.
Orders are placed in an AWS SQS queue. The OrderRoutingWorker polls the queue and routes each order through the configured broker adapter. Dead letter queue captures failures for manual review.
IBrokerAdapterFactory selects the correct adapter based on brokerage configuration. The architecture supports multiple providers (Mock, NGX, NASDOTC, FMDQ, ThirdPartyBroker) — each implementing a standardized interface.
Every routing attempt is logged with full event history: Queued → Submitted → Acknowledged → PartiallyFilled → Filled (or Cancelled / Rejected / Failed). Late fills received after cancellation are flagged for compliance review.
Atlas uses SignalR WebSocket hubs for bidirectional real-time communication. Order status updates are pushed to mobile clients the moment execution events are processed. Support chat messages are delivered instantly with typing indicators and read receipts.
Containerized API deployments with Docker. AWS ECS and Lambda-compatible. Horizontal scaling based on demand.
MySQL for relational persistence with EF Core migrations. Redis for caching, session management, and market data.
AWS SQS for reliable, asynchronous order routing with dead letter queue for failed messages. Decouples order acceptance from execution.
AWS S3 for KYC document storage, trade confirmations, account statements, and file uploads with secure pre-signed URLs.
AWS Parameter Store for environment-specific configuration: database credentials, API keys, payment gateway secrets, JWT signing keys.
AWS CloudFront for global content delivery. Static assets, admin portal, and marketing site served from edge locations worldwide.
Our engineering team can walk you through the platform architecture, multi-tenancy model, and security posture in detail. Schedule a technical discussion.
Schedule Technical Discussion