Dec 13, 2024
No image
SaaS based multi-tenant data visualization platform
Completed

SaaS based multi-tenant data visualization platform

$5,000+
4-6 months
United States
2-5
view project
Service categories
Service Lines
Software Development
Web Development
Domain focus
Business Services
Technology
Subcategories
Software Development
Business Software

Challenge

Trion SaaS is built on a multi-tenant architecture framework, allowing a single software application instance to serve multiple tenants efficiently. Each tenant’s data is fully isolated and secure, ensuring that information remains private and inaccessible to other tenants.

  • Tenant identification: Implement a mechanism to identify the tenant based on the user's login using KeyCloak.
  • Database provisioning: Automate the provisioning of Azure SQL databases for new clients as part of the onboarding process. This includes setting up the database schema, roles, and initial configurations specific to each tenant.
  • Connection management: Develop a dynamic database connection management system that manages connections to the appropriate tenant database based on the tenant identification process.
  • Scalability: Design the infrastructure to be scalable, enabling seamless resource expansion for individual tenant databases as their usage increases.
  • Data isolation and integrity: Ensure strict data isolation for each tenant, preventing any possibility of cross-tenant access.

Solution

We’ve created a platform that allows multiple tenants—whether they’re customers or organizations—to securely share the same system while keeping their data completely separate and protected.

  • Multi-Tenant architecture: Tenancy is implemented using a database-per-tenant strategy, ensuring enhanced security and data isolation. Each tenant's data is stored in a dedicated Azure SQL database.
  • Single Page Application (SPA): React was chosen to build a fast, responsive, component-based, and modular SPA. Each tenant is provided with a customized user interface tailored to their specific preferences and needs.
  • API integration: React communicates with the .NET Core Web API to fetch tenant-specific data, utilizing HTTP requests (Axios, Fetch API).
  • Real-Time data processing: Capable of processing and visualizing data in real time, enabling users to monitor key metrics and respond quickly to changes.
  • Entity framework core (EF Core): Used as the ORM to manage tenant data. EF Core’s database per tenant strategy helps in managing migrations and schema versions independently for each tenant.
  • Caching and Queuing: Azure Redis Cache was used to speed up repetitive data queries. Azure Service Bus was used for background tasks and communication between services.

Results

  • High availability & scalability: The application is able to scale efficiently with minimal downtime due to Azure's robust cloud infrastructure and auto-scaling capabilities.
  • Improved user experience: Tenants enjoyed a tailored user experience without performance issues, as data was fetched and managed efficiently using Azure SQL Server.
  • Cost efficiency: Using shared resources like Azure SQL Elastic Pools and Azure SQL Server, the application kept costs under control while maintaining a high degree of data isolation and customization.
  • Rapid development and deployment: With Azure DevOps, new features and bug fixes were deployed seamlessly through automated pipelines, ensuring rapid iterations and high-quality code.