AWorld Lab
About
API Reference
API Reference
  • App API
  • Dashboard API
  • Overview
API Download
API Download
  • App API
  • Dashboard API
AWorld.orgAWorld Trust
About
API Reference
API Reference
  • App API
  • Dashboard API
  • Overview
API Download
API Download
  • App API
  • Dashboard API
AWorld.orgAWorld Trust
AWorld.org
  1. AWorld Lab
  • AWorld Lab
    • Engagement for Businesses and Organizations
    • API-first for Gamification
    • Gamification Features and Mechanics
    • Infrastructure and Technology
    • Technical Details
  • API Overview
    • Getting Started
    • Multi-Tenancy
    • Workspaces
    • Authentication
    • Common Features
    • API Reference
      • App API Reference (Consumer)
        • ActivityLogs
          • Create activity log
        • Analytics
          • Get community metrics
        • Learning Paths
          • Items
            • List learning path items
          • List learning paths
          • Get learning path by ID
        • Learning Groups
          • Tags
            • List learning group tag assignments
            • Get learning group tag assignment
          • Translation
            • Get learning group translation
          • List learning groups
          • Get learning group by ID
        • Learning Path Assignments
          • Items
            • List learning path assignment items
          • Tags
            • List learning path assignment tags
            • Get learning path assignment tag by ID
          • Translation
            • Get learning path assignment translation
          • List learning path assignments
          • Get learning path assignment by ID
        • Missions
          • List missions
          • Get mission
        • Quizzes
          • Tags
            • List quiz tags
            • Get quiz tag by ID
          • Translation
            • Get quiz translation
          • List quizzes
          • Get quiz by ID
          • Submit quiz answers
        • Runtime Leaderboards
          • List runtime leaderboards
          • Get a runtime leaderboard by ID
          • Get leaderboard rankings
          • Get current user's ranking
        • Slides
          • TagAssignments
            • List slide tags
            • Get slide tag by ID
          • Translation
            • Get slide translation
          • List slides
          • Get slide by ID
          • Submit slide completion
        • Stories
          • TagAssignments
            • List story tags
            • Get story tag by ID
          • Translation
            • Get story translation
          • List stories
          • Get story by ID
          • Submit story completion
        • Streaks
          • List streaks
        • Users
          • Tags
            • List current user tags
            • Get current user tag by ID
          • Get current user
          • Get current user principal
          • Update current user
          • Get current user learning stats
        • VirtualBalances
          • List virtual balances
          • Get virtual balance by currency ID
        • VirtualTransactions
          • List virtual transactions
          • Create virtual transaction
          • Get virtual transaction by ID
          • Redeem virtual transaction
        • WorkspaceConfiguration
          • Get workspace configuration
      • Dashboard API Reference (Admin)
        • Activities
          • Tags
            • List activity tag assignments
            • Create multiple activity tag assignments
            • Update multiple activity tag assignments
            • Delete multiple activity tag assignments
            • Get activity tag assignment
            • Create activity tag assignment
            • Update activity tag assignment
            • Delete activity tag assignment
          • Translations
            • List activity translations
          • List activities
          • Create activity
          • Get activity by ID
          • Update activity
          • Publish an activity
        • Analytics
          • Get content analytics
          • Get economy analytics
          • Get engagement analytics
          • Get gamification analytics
          • Get learning analytics
          • Get analytics overview
          • Get quiz analytics
        • Learning Paths
          • Items
            • List learning group items
            • List learning path items
          • Tags
            • List learning path tag assignments
            • Create multiple learning path tag assignments
            • Update multiple learning path tag assignments
            • Delete multiple learning path tag assignments
            • Get learning path tag assignment
            • Create learning path tag assignment
            • Update learning path tag assignment
            • Delete learning path tag assignment
          • Translations
            • List learning path translations
          • List learning paths
          • Create learning path
          • Get learning path by ID
          • Update learning path
          • Publish learning path
        • Learning Groups
          • Tags
            • List learning group tag assignments
            • Create multiple learning group tag assignments
            • Update multiple learning group tag assignments
            • Delete multiple learning group tag assignments
            • Get learning group tag assignment
            • Create learning group tag assignment
            • Update learning group tag assignment
            • Delete learning group tag assignment
          • Translations
            • List learning group translations
          • List learning groups
          • Create learning group
          • Get learning group by ID
          • Update learning group
          • Publish learning group
        • LearningPathRules
          • List learning path rules
          • Create learning path rule
          • Get learning path rule by ID
          • Update learning path rule
          • Publish learning path rule
        • LearningPathAssignments
          • List learning path assignments
          • Create learning path assignment (manual)
          • Get learning path assignment by ID
        • Missions
          • Create mission (manual)
        • MissionRules
          • Tags
            • List mission rule tag assignments
            • Create multiple mission rule tag assignments
            • Update multiple mission rule tag assignments
            • Delete multiple mission rule tag assignments
            • Get mission rule tag assignment
            • Create mission rule tag assignment
            • Update mission rule tag assignment
            • Delete mission rule tag assignment
          • Translations
            • List mission rule translations
          • List mission rules
          • Create mission rule
          • Get mission rule by ID
          • Update mission rule
          • Publish mission rule
        • MissionConfigurations
          • Tags
            • List mission configuration tag assignments
            • Create multiple mission configuration tag assignments
            • Update multiple mission configuration tag assignments
            • Delete multiple mission configuration tag assignments
            • Create mission configuration tag assignment
            • Update mission configuration tag assignment
            • Delete mission configuration tag assignment
            • Get mission configuration tag assignment
          • Translations
            • List mission configuration translations
          • List mission configurations
          • Create mission configuration
          • Get mission configuration by ID
          • Update mission configuration
          • Publish mission configuration
        • Mobility
          • Get mobility activation
          • Update mobility activation
          • List mobility milestones
          • Get mobility milestone
          • Redeem mobility milestone
          • Get MotionTag status
          • Get MotionTag token
          • List mobility trackings
          • List mobility activations
          • Create mobility activation
        • Media
          • Tags
            • List media tag assignments
            • Create multiple media tag assignments
            • Update multiple media tag assignments
            • Delete multiple media tag assignments
            • Get media tag assignment
            • Create media tag assignment
            • Update media tag assignment
            • Delete media tag assignment
        • MediaLibrary
          • Translations
            • List media translations
          • List media files
          • Get presigned upload URL
          • Get media file by ID
          • Update media file metadata
          • Delete media file
        • Quizzes
          • Translations
            • List quiz translations
          • Tags
            • List quiz tag assignments
            • Create multiple quiz tag assignments
            • Update multiple quiz tag assignments
            • Delete multiple quiz tag assignments
            • Get quiz tag assignment
            • Create quiz tag assignment
            • Update quiz tag assignment
            • Delete quiz tag assignment
          • List quizzes
          • Create quiz
          • Get quiz by ID
          • Update quiz
          • Publish quiz
        • RewardRules
          • List reward rules
          • Create reward rule
          • Get reward rule by ID
          • Update reward rule
          • Publish reward rule
        • Runtime Leaderboards
          • Create a runtime leaderboard
          • List runtime leaderboards
          • Get a runtime leaderboard by ID
          • Update a runtime leaderboard
        • RuntimeLeaderboardConfigurations
          • List runtime leaderboard configurations
          • Create a new runtime leaderboard configuration
          • Get runtime leaderboard configuration by ID
          • Update a runtime leaderboard configuration
          • Create a new runtime leaderboard instance
          • List translations for a runtime leaderboard configuration
        • Slides
          • Tags
            • List slide tag assignments
            • Create multiple slide tag assignments
            • Update multiple slide tag assignments
            • Delete multiple slide tag assignments
            • Get slide tag assignment
            • Create slide tag assignment
            • Update slide tag assignment
            • Delete slide tag assignment
          • Translations
            • List slide translations
          • List slides
          • Create slide
          • Get slide by ID
          • Update slide
          • Publish slide
        • Stories
          • Tags
            • List story tag assignments
            • Create multiple story tag assignments
            • Update multiple story tag assignments
            • Delete multiple story tag assignments
            • Get story tag assignment
            • Create story tag assignment
            • Update story tag assignment
            • Delete story tag assignment
          • Translations
            • List story translations
            • List story translations
          • List stories
          • Create story
          • Get story by ID
          • Update story
          • Publish story
        • StreakConfigurations
          • Tags
            • List streak configuration tag assignments
            • Create multiple streak configuration tag assignments
            • Update multiple streak configuration tag assignments
            • Delete multiple streak configuration tag assignments
            • Get streak configuration tag assignment
            • Create streak configuration tag assignment
            • Update streak configuration tag assignment
            • Delete streak configuration tag assignment
          • Translations
            • List streak configuration translations
          • List streak configurations
          • Create streak configuration
          • Get streak configuration by ID
          • Update streak configuration
          • Publish streak configuration
        • StreakRules
          • Tags
            • List streak rule tag assignments
            • Create multiple streak rule tag assignments
            • Update multiple streak rule tag assignments
            • Delete multiple streak rule tag assignments
            • Get streak rule tag assignment
            • Create streak rule tag assignment
            • Update streak rule tag assignment
            • Delete streak rule tag assignment
          • Translations
            • List streak rule translations
          • Create streak rule
          • List streak rules
          • Get streak rule by ID
          • Update streak rule
          • Publish streak rule
        • Tags
          • Translations
            • List tag translations
          • Create tag
          • List all tags
          • Get tag by ID
          • Update tag
          • Publish tag
        • Users
          • Tags
            • List user tag assignments
            • Create multiple user tag assignments
            • Update multiple user tag assignments
            • Delete multiple user tag assignments
            • Get user tag assignment
            • Create user tag assignment
            • Update user tag assignment
            • Delete user tag assignment
          • Create user
          • List users
          • Get user by external ID
          • Get current user
          • Get user by ID
          • Get current user principal
          • Update user by ID
          • Delete (anonymise) user by ID
        • VirtualCurrencies
          • Translations
            • List streak rule translations
          • Create virtual currency
          • List virtual currencies
          • Get virtual currency
          • Update virtual currency
          • Publish virtual currency
        • VirtualTransactions
          • Create Virtual Transaction
        • WorkspaceConfiguration
          • Get workspace configuration
          • Update workspace configuration
          • Delete workspace configuration
          • Publish workspace configuration
  • Schemas
    • App Schemas
      • Schemas
      • CommunityMetricsResponse
      • GetCurrentUserTagResponse
      • GetCurrentUserStatsResponse
      • GetQuizTagResponse
      • GetQuizTranslationResponse
      • GetStoryTagResponse
      • GetLearningGroupTranslationResponse
      • GetStoryTranslationResponse
      • GetVirtualBalanceResponse
      • GetLearningPathAssignmentTagResponse
      • GetVirtualTransactionResponse
      • GetLearningPathAssignmentTranslationResponse
      • GetMissionResponse
      • ListCurrentUserTagAssignmentsResponse
      • ListMissionsResponse
      • GetRuntimeLeaderboardRankingsMeResponse
      • GetRuntimeLeaderboardRankingsResponse
      • ListStreaksResponse
      • ListVirtualBalancesResponse
      • GetSlideTagResponse
      • ListVirtualTransactionsResponse
      • GetSlideTranslationResponse
      • RedeemVirtualTransactionResponse
      • SubmitQuizResponse
      • SubmitStoryResponse
      • ListLearningPathAssignmentItemsResponse
      • ListLearningPathAssignmentTagsResponse
      • SubmitSlideResponse
      • UpdateCurrentUserResponse
    • Dashboard Schemas
      • Schemas
        • CreateActivityResponse
        • CreateVirtualTransactionResponse
        • GetMobilityActivationResponse
        • GetQuizResponse
        • GetStoryResponse
        • JsonLogicExpression
        • Lang
        • ListQuizTagAssignmentsResponse
        • ListQuizzesResponse
        • ListStoriesResponse
        • ListStoryTagAssignmentsResponse
        • SourceRegion
        • Timezone
        • UpdateMobilityActivationResponse
      • CreateActivityResponse
      • ActivityTranslation
      • CreateVirtualTransactionResponse
      • ActivityWithResolvedFields
      • GetCurrentUserPrincipalResponse
      • ContentAnalyticsResponse
      • GetCurrentUserResponse
      • CreateActivityTagAssignmentResponse
      • CreateActivityTagAssignmentsResponse
      • GetQuizResponse
      • CreateMissionConfigurationResponse
      • CreateMissionConfigurationTagAssignmentResponse
      • CreateLearningGroupResponse
      • CreateMissionConfigurationTagAssignmentsResponse
      • GetLearningGroupResponse
      • CreateLearningGroupTagAssignmentResponse
      • GetStoryResponse
      • CreateMissionResponse
      • GetLearningGroupTagAssignmentResponse
      • CreateLearningGroupTagAssignmentsResponse
      • CreateMissionRuleResponse
      • CreateLearningPathAssignmentResponse
      • CreateMissionRuleTagAssignmentResponse
      • GetLearningPathAssignmentResponse
      • CreateLearningPathResponse
      • CreateMissionRuleTagAssignmentsResponse
      • CreateLearningPathRuleResponse
      • CreateQuizResponse
      • CreateLearningPathTagAssignmentResponse
      • JsonLogicExpression
      • CreateQuizTagAssignmentResponse
      • GetLearningPathResponse
      • CreateLearningPathTagAssignmentsResponse
      • Lang
      • CreateQuizTagAssignmentsResponse
      • CreateMediaTagAssignmentResponse
      • CreateRewardRuleResponse
      • CreateMediaTagAssignmentsResponse
      • CreateStoryResponse
      • ListQuizTagAssignmentsResponse
      • CreateStoryTagAssignmentResponse
      • ListQuizzesResponse
      • CreateStoryTagAssignmentsResponse
      • ListStoriesResponse
      • CreateStreakConfigurationResponse
      • ListStoryTagAssignmentsResponse
      • CreateStreakConfigurationTagAssignmentResponse
      • GetRuntimeLeaderboardResponse
      • CreateStreakConfigurationTagAssignmentsResponse
      • GetSlideResponse
      • CreateStreakRuleResponse
      • CreateTagResponse
      • CreateMobilityActivationResponse
      • CreateUserResponse
      • SourceRegion
      • CreateVirtualCurrencyResponse
      • DeleteMissionConfigurationTagAssignmentResponse
      • Timezone
      • DeleteMissionConfigurationTagAssignmentsResponse
      • CreateRuntimeLeaderboardConfigurationRequest
      • DeleteMissionRuleTagAssignmentResponse
      • GetWorkspaceConfigurationResponse
      • CreateRuntimeLeaderboardConfigurationResponse
      • DeleteMissionRuleTagAssignmentsResponse
      • CreateRuntimeLeaderboardInstanceRequest
      • DeleteQuizTagAssignmentResponse
      • CreateRuntimeLeaderboardInstanceResponse
      • DeleteQuizTagAssignmentsResponse
      • CreateRuntimeLeaderboardResponse
      • DeleteStoryTagAssignmentResponse
      • ListLearningGroupItemsResponse
      • CreateSlideResponse
      • DeleteStoryTagAssignmentsResponse
      • ListLearningGroupsResponse
      • CreateSlideTagAssignmentResponse
      • DeleteStreakConfigurationTagAssignmentResponse
      • ListLearningGroupTagAssignmentsResponse
      • CreateSlideTagAssignmentsResponse
      • DeleteStreakConfigurationTagAssignmentsResponse
      • DeleteUserResponse
      • ListLearningPathAssignmentsResponse
      • GetActivityResponse
      • GetActivityTagAssignmentResponse
      • ListLearningPathsResponse
      • GetMissionConfigurationResponse
      • GetMissionConfigurationTagAssignmentResponse
      • GetMissionRuleResponse
      • GetMissionRuleTagAssignmentResponse
      • ListRuntimeLeaderboardsResponse
      • ListSlidesResponse
      • GetMobilityMilestoneResponse
      • ListSlideTagAssignmentsResponse
      • GetMotionTagStatusResponse
      • GetMotionTagTokenResponse
      • DeleteLearningGroupTagAssignmentResponse
      • DeleteLearningGroupTagAssignmentsResponse
      • GetQuizTagAssignmentResponse
      • DeleteLearningPathTagAssignmentResponse
      • GetRewardRuleResponse
      • DeleteLearningPathTagAssignmentsResponse
      • DeleteMediaResponse
      • GetStoryTagAssignmentResponse
      • DeleteMediaTagAssignmentResponse
      • GetStreakConfigurationResponse
      • DeleteMediaTagAssignmentsResponse
      • GetStreakConfigurationTagAssignmentResponse
      • GetStreakRuleResponse
      • GetStreakRuleTagAssignmentResponse
      • GetTagResponse
      • GetUserByExternalIdResponse
      • GetUserResponse
      • GetUserTagAssignmentResponse
      • DeleteSlideTagAssignmentResponse
      • GetVirtualCurrencyResponse
      • DeleteSlideTagAssignmentsResponse
      • ListActivitiesResponse
      • ListActivityTagAssignmentsResponse
      • ListActivityTranslationsResponse
      • ListMissionConfigurationsResponse
      • DeleteWorkspaceConfigurationResponse
      • ListMissionConfigurationTagAssignmentsResponse
      • EconomyAnalyticsResponse
      • ListMissionConfigurationTranslationsResponse
      • EngagementAnalyticsResponse
      • ListMissionRulesResponse
      • GamificationAnalyticsResponse
      • ListMissionRuleTagAssignmentsResponse
      • ListMissionRuleTranslationsResponse
      • ListMobilityMilestonesResponse
      • ListMobilityTrackingsResponse
      • ListQuizTranslationsResponse
      • ListRewardRulesResponse
      • GetLearningPathRuleResponse
      • GetLearningPathTagAssignmentResponse
      • ListStoryTranslationsResponse
      • GetMediaResponse
      • ListStreakConfigurationsResponse
      • GetMediaTagAssignmentResponse
      • ListStreakConfigurationTagAssignmentsResponse
      • ListStreakConfigurationTranslationsResponse
      • ListStreakRulesResponse
      • ListStreakRuleTranslationResponse
      • ListTagsResponse
      • ListUsersResponse
      • ListVirtualCurrenciesResponse
      • ListVirtualCurrencyTranslationResponse
      • PublishActivityResponse
      • PublishMissionConfigurationResponse
      • PublishMissionRuleResponse
      • GetRuntimeLeaderboardConfigurationResponse
      • PublishQuizResponse
      • PublishRewardRuleResponse
      • PublishStoryResponse
      • GetSlideTagAssignmentResponse
      • PublishStreakConfigurationResponse
      • PublishStreakRuleResponse
      • PublishTagResponse
      • PublishVirtualCurrencyResponse
      • RedeemMobilityMilestoneResponse
      • StreakRuleTagAssignmentsCollection
      • StreakRuleTagAssignmentsList
      • GetUploadUrlResponse
      • UpdateActivityResponse
      • UpdateActivityTagAssignmentResponse
      • UpdateActivityTagAssignmentsResponse
      • UpdatedStreakRuleTagAssignmentsCollection
      • UpdatedUserTagAssignmentsCollection
      • UpdateMissionConfigurationResponse
      • UpdateMissionConfigurationTagAssignmentResponse
      • LearningAnalyticsResponse
      • UpdateMissionConfigurationTagAssignmentsResponse
      • UpdateMissionRuleResponse
      • UpdateMissionRuleTagAssignmentResponse
      • UpdateMissionRuleTagAssignmentsResponse
      • UpdateQuizResponse
      • UpdateQuizTagAssignmentResponse
      • ListLearningGroupTranslationsResponse
      • UpdateQuizTagAssignmentsResponse
      • UpdateRewardRuleResponse
      • ListLearningPathItemsResponse
      • UpdateStoryResponse
      • ListLearningPathRulesResponse
      • UpdateStoryTagAssignmentResponse
      • UpdateStoryTagAssignmentsResponse
      • ListLearningPathTagAssignmentsResponse
      • UpdateStreakConfigurationResponse
      • ListLearningPathTranslationsResponse
      • UpdateStreakConfigurationTagAssignmentResponse
      • ListMediaResponse
      • UpdateStreakConfigurationTagAssignmentsResponse
      • ListMediaTagAssignmentsResponse
      • UpdateStreakRuleResponse
      • ListMediaTranslationsResponse
      • UpdateStreakRuleTagAssignmentResponse
      • UpdateTagResponse
      • UpdateUserTagAssignmentResponse
      • UpdateVirtualCurrencyResponse
      • UserTagAssignmentsCollection
      • UserTagAssignmentsList
      • ListMobilityActivationsResponse
      • ListRuntimeLeaderboardConfigurationsResponse
      • ListRuntimeLeaderboardConfigurationTranslationsResponse
      • ListSlideTranslationsResponse
      • ListTagTranslationsResponse
      • MediaTranslation
      • MediaWithResolvedFields
      • OverviewAnalyticsResponse
      • PublishLearningGroupResponse
      • PublishLearningPathResponse
      • PublishLearningPathRuleResponse
      • PublishSlideResponse
      • PublishWorkspaceConfigurationResponse
      • QuizAnalyticsResponse
      • UpdateLearningGroupResponse
      • UpdateLearningGroupTagAssignmentResponse
      • UpdateLearningGroupTagAssignmentsResponse
      • UpdateLearningPathResponse
      • UpdateLearningPathRuleResponse
      • UpdateLearningPathTagAssignmentResponse
      • UpdateLearningPathTagAssignmentsResponse
      • UpdateMediaResponse
      • UpdateMediaTagAssignmentResponse
      • UpdateMediaTagAssignmentsResponse
      • UpdateRuntimeLeaderboardConfigurationRequest
      • UpdateRuntimeLeaderboardConfigurationResponse
      • UpdateRuntimeLeaderboardResponse
      • UpdateSlideResponse
      • UpdateSlideTagAssignmentResponse
      • UpdateSlideTagAssignmentsResponse
      • UpdateUserResponse
      • UpdateWorkspaceConfigurationResponse
About
API Reference
API Reference
  • App API
  • Dashboard API
  • Overview
API Download
API Download
  • App API
  • Dashboard API
AWorld.orgAWorld Trust
About
API Reference
API Reference
  • App API
  • Dashboard API
  • Overview
API Download
API Download
  • App API
  • Dashboard API
AWorld.orgAWorld Trust
AWorld.org
  1. AWorld Lab

Infrastructure and Technology

4. AWorld Product Architecture#

The AWorld product architecture has been designed to ensure scalability, security, and modularity, enabling companies to integrate gamification into their digital ecosystems with maximum flexibility. The system leverages a fully cloud-native and serverless infrastructure, reducing operational complexity and optimizing management costs.
Thanks to an API-first model, the system allows for secure and flexible management of its features, while the multi-tenant architecture ensures effective data segregation across clients, guaranteeing that each organization has exclusive access to its data and configurations.
This combination of technologies enables AWorld to deliver a highly performant and reliable platform, adaptable to a wide range of use cases and capable of supporting large user volumes without compromising service quality.
The AWorld infrastructure is entirely serverless, leveraging AWS services to guarantee reliability, automatic scalability, and resilience.

4.1 Scalability and Resilience with AWS Cloud-Native Infrastructure#

Thanks to its cloud-native architecture on AWS, AWorld automatically scales with traffic, ensuring high performance without interruptions. The serverless approach eliminates manual provisioning, optimizing cost and operational management.
The system integrates AWS Lambda and API Gateway, working together to provide efficient serverless computing and optimal API request handling. This combination enables the platform to handle high volumes of traffic without the need for static resource allocation, reducing operational costs.
For data management, AWorld uses Amazon DynamoDB, a highly scalable NoSQL database designed to provide fast and reliable performance, even with large volumes of data. Table structures are designed to ensure secure, segmented access, restricted by permissions defined per tenant, ensuring strict data segregation.
In terms of availability and resilience, the infrastructure is distributed across multiple AWS regions, adopting disaster recovery and geographic traffic balancing strategies. This setup keeps the service running even in case of failure in a specific region, ensuring a seamless user experience regardless of geographic location.
The cloud-native approach minimizes the need for manual infrastructure management, providing an optimized product lifecycle and continuously updated performance and security.

4.2 Multi-Tenant Management and Data Segregation#

The system implements an advanced data segregation model to ensure each organization operates in an isolated environment, preventing unauthorized access between tenants. This isolation is achieved through a combination of access management strategies and technologies.
Data storage is handled through Amazon DynamoDB, using a structure where the primary key includes both tenant and workspace. This ensures each API request is automatically scoped to the client’s data, eliminating the possibility of cross-access between organizations.
The infrastructure utilizes AWS Verified Permissions, an advanced access management system that applies detailed authorization controls. The security model is based on RBAC (Role-Based Access Control), allowing definition of roles and permissions per user. Additionally, the platform is designed to evolve toward ABAC (Attribute-Based Access Control), enabling dynamic, context-based authorization policies.
User authentication is managed via a centralized user pool, providing a unique identity for each user while ensuring separation of access across tenants. Each organization retains full control over users and permissions within its digital workspace.
Beyond data and access segregation, the system supports an advanced multi-tenant architecture where each organization can manage its own workspaces, allowing for complete separation within the same tenant. This offers greater granularity in managing users and resources.
This strategy guarantees maximum data security and compliance with data protection regulations, ensuring all operations align with established security policies.

4.3 API Structure and Request Management#

AWorld’s API-first architecture enables easy integration of gamification features into any digital ecosystem, adapting functionalities to specific business needs without infrastructure changes. Each API is designed to be efficient, secure, and compatible with different environments, providing maximum implementation flexibility.

4.3.1 API-First Model#

AWorld APIs allow clients to manage all gamification aspects—from user management to progress tracking. The system supports user creation, management, and authorization via direct integration with OAuth2 and AWS Cognito. Dedicated endpoints allow tracking of missions, progress, leaderboards, and rewards, providing full control over engagement logic. The architecture adapts to a wide range of application scenarios, enabling flexible and personalized integration.
To optimize request efficiency, APIs are built using GraphQL, allowing clients to request only the data they actually need, reducing network load and improving performance. Compared to traditional REST models, GraphQL enables fetching multiple resources in a single request, avoiding redundant calls and enhancing resource efficiency.
The system supports two main API interaction models: Client-to-Server (C2S) and Server-to-Server (S2S). In C2S, clients directly call the APIs to retrieve data and update mission or leaderboard states. In S2S, backend systems of client organizations integrate with AWorld for full automation, with no direct user intervention. JWT Management ensures every request is authenticated and authorized based on the corresponding tenant or workspace permissions.

4.3.2 API Security and Authorization#

The system ensures top-tier security through an advanced authentication model based on OAuth2 and AWS Lambda Authorizer, providing controlled access and data protection. API access is regulated via OAuth2, which handles token generation and validation, ensuring that only authenticated users can interact with the platform.
For permission control, AWS Lambda Authorizer is used to apply dynamic policies based on assigned user roles. This allows real-time API access control, minimizing unauthorized exposure. Each request undergoes instant validation against security criteria to prevent invalid or malicious access attempts.
Authentication is centralized via a shared user pool, ensuring secure identity management while maintaining tenant-level isolation. API authentication, however, is fully isolated per tenant, with a dedicated Lambda Authorizer for each tenant, ensuring access policies are never shared across clients.
These measures provide a high level of security, ensuring all API interactions occur within a protected, standards-compliant environment.

4.3.3 Performance Optimization and Traffic Management#

To guarantee high performance at scale, AWorld implements advanced strategies for traffic and API request optimization. A key element is Amazon ElastiCache (Redis), used to reduce API load and improve response times for frequent requests, enhancing system efficiency.
In parallel, the platform applies rate limiting and abuse protection mechanisms, with throttling policies to prevent overload and mitigate DDoS risks. This ensures fair resource distribution and consistent performance under heavy load.
An additional optimization layer is the multi-region load balancing, which dynamically routes API requests to the closest region. This minimizes latency and improves user experience by ensuring faster response times.
AWorld combines AWS Route 53 for DNS load balancing with dynamic API traffic management to ensure requests are routed to the nearest region. Combined with rate limiting and tenant-level throttling, this prevents resource monopolization and ensures fair access across all clients.
These strategies deliver a responsive and seamless experience, minimizing latency and ensuring scalability to support user and operational growth.

4.4 Data Management and Privacy Compliance#

AWorld adopts a privacy by design and by default approach, ensuring user data is managed in full compliance with global regulations such as the GDPR. To protect information, the platform applies advanced encryption techniques—both at rest and in transit—using secure algorithms to prevent unauthorized access or data breaches.
To reduce data exposure risks, the platform implements anonymization and pseudonymization processes, minimizing the volume of personal data collected and processed. Additionally, every system operation is recorded via a detailed audit log, allowing all API interactions to be transparently tracked and verified.
Multi-region architecture provides another layer of security and compliance, supporting data residency requirements. This ensures sensitive information remains within regulated jurisdictions, providing stronger protection and adherence to local laws.

In summary, AWorld's architecture represents a robust and advanced solution for managing gamification in corporate and engagement contexts. With a cloud-native infrastructure, API-first model, and multi-tenant approach, the platform delivers a scalable, secure, and high-performance system adaptable to any industry.
Its fully serverless infrastructure ensures maximum scalability, supporting high user volumes without performance degradation. Security is managed through granular permission control, ensuring GDPR compliance and advanced data protection. Latency optimization and intelligent caching further improve API efficiency and responsiveness, ensuring a smooth user experience.
Finally, the use of GraphQL as the interaction model allows for flexible and customizable integration, empowering clients to seamlessly adapt gamification features to their own systems. This combination of technologies positions AWorld as a leading platform in the gamification landscape, ready to support organizations of any size and sector.
Modified at 2025-06-26 11:00:58
Previous
Gamification Features and Mechanics
Next
Technical Details
Built with