May 27, 2025

Building a Multi-tenant Asset Management System with Harper Blobs

Welcome to Community Posts
Click below to read the full article.
Arrow
Summary of What to Expect
Table of Contents

Digital asset management grows in complexity when you have to serve multiple tenants from a single application. Organizations need efficient storage solutions that balance performance, security, and resource allocation. Harper's blob functionality has a powerful foundation for multi-tenant asset systems with its streaming capabilities, flexible storage options, and performance optimizations.

This article explores how to build a scalable, secure multi-tenant asset management system using Harper's blob storage, using the platform's unique latency advantages.

Understanding Harper's Latency Advantage

Before diving into blob implementation, it's important to understand Harper's fundamental performance characteristics. Harper dramatically reduces latency through its edge-native architecture and co-location of compute and data:

  • Edge-native architecture: Nodes can be deployed closer to users across global regions, with reported global replication speeds of ~100-110ms
  • Integrated compute and database: By eliminating round-trips between application servers and databases, operations that typically take ~100ms can complete in less than half the time.
  • In-memory caching: Automatic caching delivers sub-millisecond responses for frequently accessed data

For asset management systems, these advantages translate to significantly faster upload and retrieval times, even for large binary objects.

Understanding Harper Blobs

Harper blobs are designed for storing unstructured binary data, with performance advantages for content larger than 20KB. Built on the native JavaScript Blob type, they support streaming data transfers, making them ideal for handling large files like images, videos, and documents in multi-tenant environments.

Architecture Overview

Our multi-tenant asset management system includes:

  1. Tenant isolation: Schema-level separation for each tenant
  2. Asset storage: Using Harper blobs to store various file types
  3. Access control: Permission model ensuring tenants can only access their assets
  4. Asset retrieval: Efficient streaming of assets to end-users

Setting Up the Data Schema

First, let's define our data model using a schema per tenant approach for strong isolation:

type TenantAssets { 
	id: Any! @primaryKey 
	assetName: String 
	mimeType: String 
	uploadedAt: Date 
	data: Blob 
	metadata: Object 
}

This model stores asset metadata alongside a reference to the blob data.

Configuring Blob Storage

Harper offers flexible configuration for blob storage paths. For a multi-tenant system, we can use multiple storage paths for better performance and tiered resource allocation:

storage:
  blobPaths:
    - /storage/tenant_assets/tier1
    - /storage/tenant_assets/tier2
    - /storage/tenant_assets/tier3

When you configure multiple paths, you can distribute blob storage across different volumes or storage tiers, potentially allocating premium storage to higher-tier tenants.

Implementing Asset Upload

export class AssetUpload extends TenantAssets {
    async post(request) {
        // Create a blob from the uploaded stream
        let blob = await createBlob(request.data);
        
        // Create a record referencing the blob
        const assetId = generateUniqueId();
        await TenantAssets.put({
            id: assetId,
            assetName: request.query.name,
            mimeType: request.headers['content-type'],
            uploadedAt: new Date(),
            data: blob,
            metadata: JSON.parse(request.query.metadata || '{}')
        });
        
        return {
            status: 200,
            body: { 
                message: 'Asset uploaded successfully',
                assetId: assetId
            }
        };
    }
}

Note that we're creating the record immediately after creating the blob. Thanks to Harper's unified compute and storage architecture, this operation completes with minimal latency, allowing for faster response times to clients.

Leveraging Edge Distribution for Global Asset Delivery

One of Harper's key advantages is its edge-native architecture. For a multi-tenant asset management system, this means we can deploy nodes closer to users in different regions, dramatically reducing the latency of asset delivery.

When designing asset download endpoints, the benefits become immediately apparent. Traditional architectures require multiple hops: from client to application server, from server to database, then back to the server and finally to the client. Each hop introduces latency, especially when dealing with large binary objects.

With Harper, the application logic and data storage coexist at the edge. When a user requests an asset, the request goes directly to the nearest edge node, which can immediately retrieve and stream the asset with minimal latency. For globally distributed teams, this often means reducing multi-second loading times to sub-100ms asset delivery.

Tenant Isolation Security Model

In a multi-tenant system, security and isolation are very important. Harper's architecture has several advantages in this regard:

  1. Schema-level isolation: By using separate schemas for each tenant, data is logically isolated
  2. Fast authentication: Harper's unified compute and data model enables authentication and authorization checks to complete in the 0.2-1ms range, compared to 50-100ms in traditional architectures
  3. Granular access control: Resource-level permissions can be applied to specific asset collections

The middleware approach ensures that all asset operations are always verified against the tenant's permissions before execution. Since these checks happen within the same process as the data access, they add negligible overhead to each request. In traditional architectures, such checks might require additional database queries, adding significant latency.

Real-time Asset Streaming

Harper's high-throughput infrastructure and streaming capabilities make it well-suited for real-time collaborative workflows involving assets.

Consider a scenario where multiple users need to collaborate on video editing. As one user uploads a new version of a segment, Harper can begin streaming that asset to other users. Combined with the platform's global replication speeds of ~100-110ms, this enables near real-time collaborative experiences across distributed teams.

The streaming approach is also valuable for media-heavy applications where users need to access large assets quickly. Video platforms, image repositories, and document management systems all benefit from Harper's ability to start streaming content immediately, rather than waiting for complete downloads.

Performance Optimization Strategies

To maximize the performance benefits of Harper's architecture in a multi-tenant asset management system, consider these strategies:

  1. Tiered storage allocation: Utilize multiple blob paths to allocate different storage tiers to tenants based on their requirements and service level agreements
  2. Edge deployment planning: Deploy Harper nodes in regions that align with your tenant locations to minimize asset delivery latency
  3. Caching strategy: Leverage Harper's in-memory caching for frequently accessed assets, reducing latency for popular content
  4. Progressive loading: For large assets like videos or high-resolution images, implement progressive loading techniques that take advantage of Harper's streaming capabilities

Scaling Strategies for Growing Tenant Base

As your tenant base grows, Harper's architecture offers several scaling options:

  1. Horizontal scaling: Add more nodes to distribute tenant load across the system
  2. Regional expansion: Deploy new nodes in additional regions to better serve tenants in those areas
  3. Storage tier optimization: Adjust blob storage paths to accommodate growing storage needs

The edge-native architecture means that scaling can be targeted to specific regions where demand is highest, rather than scaling an entire centralized system.

Conclusion

Harper's blob functionality combined with the platform's edge-native architecture and integrated compute and data model provides an exceptional foundation for building multi-tenant asset management systems.

Key advantages of the Harper approach include:

  1. Edge-native delivery: Assets can be served from nodes closest to users, dramatically reducing latency for global applications
  2. Integrated compute and data: No round-trips between application servers and databases, enabling sub-millisecond operations that would take 50-100ms in traditional architectures
  3. High throughput: The ability to process 100,000+ requests per second per node means asset delivery remains responsive even under heavy load
  4. Global replication: Near real-time (~100-110ms) synchronization across globally distributed nodes enables collaborative workflows and consistent user experiences
  5. In-memory caching: Automatic caching delivers sub-millisecond responses for frequently accessed assets

When you take advantage of these capabilities, you’d be able to build asset management systems that not only securely isolate tenant data but also deliver exceptional performance and user experience across global deployments.