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

Technical Details

5.1 Benefits of Serverless Infrastructure#

Adopting a serverless architecture is a strategic choice that maximizes operational efficiency and reduces infrastructure costs. With this model, computational resources are allocated dynamically based on demand, eliminating the need to manually manage physical servers or dedicated virtual machines.
One of the main advantages is automatic scalability, which allows the platform to handle load peaks without compromising performance. For example, when the number of API requests suddenly increases, AWS Lambda activates additional function instances without manual intervention, ensuring an immediate response to variable load. This is particularly useful for scenarios where users interact with the platform unpredictably, such as engagement campaigns or high-traffic initiative launches.
From an economic perspective, cost optimization is another key aspect. AWS's pay-per-use model means resources are billed only when actually used, avoiding waste related to server over-provisioning. In a traditional solution, a company would need to provision extra computing capacity to handle peaks, incurring fixed costs regardless of actual usage. With serverless, this logic is reversed, reducing operational expenses and ensuring a highly efficient infrastructure.
From an operational management perspective, serverless infrastructure drastically reduces maintenance needs. Updates, patching, and infrastructure-level security are managed directly by AWS, allowing AWorld's technical teams to focus on developing gamification features without managing provisioning or manual server monitoring operations.

5.2 API Model: GraphQL and REST Support#

AWorld adopts GraphQL as its primary interaction model for its APIs, offering customers a more efficient, flexible, and scalable solution. Thanks to its declarative nature, GraphQL allows clients to get exactly the data they need in a single request, reducing bandwidth consumption and improving overall performance.
One of the main advantages of GraphQL is greater control over returned data. Developers can request only necessary fields, avoiding overly large responses and thus reducing bandwidth consumption and request processing time.
Another fundamental aspect is the reduction in the number of API requests. Thanks to the ability to aggregate data from different sources in a single call, latency is reduced, and client-server communication efficiency is optimized.
GraphQL also ensures greater flexibility in API evolution. New fields and features can be added without impacting existing versions, maintaining compatibility with clients already in use and facilitating the integration of new features without operational disruptions.
However, to facilitate adoption and ensure compatibility with pre-existing infrastructures, AWorld also offers REST interfaces, allowing customers to choose the API format best suited to their technology stack. This way, the platform retains all the advantages of GraphQL without sacrificing the ease of use of REST for those who need it.
Thanks to this architecture, companies can integrate AWorld flexibly, creating more dynamic and reactive gamification experiences, with an API model designed to adapt to different technological contexts.

5.3 Permissions Management and RBAC / ABAC Transition#

Data security and access management are fundamental elements of AWorld's infrastructure, particularly to ensure proper isolation between different clients in the multi-tenant model. For this reason, the platform implements an access control system based on RBAC (Role-Based Access Control), with the possibility of evolving towards a more flexible and granular model like ABAC (Attribute-Based Access Control).

5.3.1 RBAC: Role-Based Control#

In the RBAC model, each user is associated with a predefined role with static permissions. This structure simplifies access management, allowing for clear assignment of responsibilities. For example, an administrator can configure the platform, create missions, manage users, and monitor data, while a moderator can supervise missions and interact with users without modifying global rules. Standard users, on the other hand, can participate in missions and accumulate progress but do not have access to configurations.
This model is particularly useful in contexts where roles and responsibilities are well-defined and static. However, in more complex scenarios, it can be limiting as it does not allow dynamic access management based on specific conditions or user behavior.

5.3.2 ABAC: Attribute-Based Control#

To overcome these limitations, AWorld supports an ABAC authorization model, which allows permissions to be determined dynamically based on a combination of user, resource, and operational context attributes.
Unlike the RBAC model, which assigns rigid permissions based on roles, ABAC allows for the definition of more flexible rules. For example, a user might only have access to missions they created, while some advanced features might be reserved for users with Premium status. Furthermore, access to certain resources could vary based on contextual conditions, such as time of day or the progress status of a mission.
This transition offers several advantages. On one hand, it makes the system more scalable, avoiding the need to manually manage a large number of static roles and permissions. On the other hand, it improves security by reducing risks associated with excessive or erroneously assigned permissions. Thanks to this flexibility, companies can customize access levels without continually redefining policies, adapting authorizations in real-time to operational needs.

5.4 Performance Optimization and Workload Management#

To ensure a smooth and scalable user experience, AWorld implements various performance optimization strategies, including distributed caching, efficient API request management, and load balancing. These mechanisms help improve platform responsiveness, reduce latency, and optimize resource usage.

5.4.1 Distributed Caching to Reduce Latency#

One of the key tools for improving performance is caching, which reduces the number of database queries and speeds up access to data that changes less frequently. Static or semi-static information, such as mission configurations or game rules, can be temporarily stored in memory, avoiding redundant database access and improving response speed.
Caching is managed dynamically, with automatic invalidation criteria to ensure data is always up-to-date. When changes are made to missions, rewards, or global configurations, the system automatically updates the cache, avoiding inconsistencies and ensuring constant alignment between displayed and actual data.
Highly dynamic data such as scores and leaderboards are not cached, as they must be updated in real-time to reflect the latest state of competitions and user engagement. For these elements, the system uses continuous update mechanisms and efficient query management to ensure speed and accuracy in responses.

5.4.2 Load Balancing to Improve Traffic Distribution#

To ensure high availability and system responsiveness, AWorld uses a distributed architecture capable of balancing the load of API requests across multiple instances and data centers. This optimizes resource allocation and routes requests efficiently, reducing response times and improving the overall scalability of the platform.
In case of usage peaks or high load on a specific geographical area, the system can automatically distribute traffic across multiple nodes, ensuring operational continuity and smooth request management even under high concurrency conditions.

5.5 Disaster Recovery and Business Continuity#

To ensure platform resilience, AWorld adopts a distributed architecture and an advanced disaster recovery and business continuity strategy, ensuring rapid system restoration in case of critical failures or unforeseen events. This approach reduces the risk of service interruptions, protecting data availability and ensuring a stable user experience even in emergency conditions.

5.5.1 Multi-Region Replication and Redundancy#

AWorld utilizes an active-active configuration across multiple cloud regions, ensuring that data and services are always accessible even if a specific geographical area malfunctions. All key infrastructure components are automatically replicated to ensure operational continuity.
Application data is distributed across multiple regions through real-time replicated databases, avoiding the risk of information loss and ensuring consistency between different instances. Static files are synchronized across multiple data centers to ensure immediate recovery, while APIs and application services are distributed across multiple nodes, ensuring a significant reduction in downtime.

5.5.2 Recovery Plans and Recovery Times#

Each platform component is designed to meet strict Recovery Time Objectives (RTO) and Recovery Point Objectives (RPO), ensuring that in case of an incident, data is always available and the service is restored as quickly as possible.
Thanks to real-time replication, critical platform information can be recovered almost instantaneously, while application services can automatically divert traffic to functioning instances without noticeable impact to users. Static content and assets are also periodically synchronized between regions to ensure operational continuity without prolonged interruptions.

5.5.3 Monitoring and Automatic Anomaly Detection#

To ensure high reliability, AWorld implements a proactive monitoring system that constantly analyzes usage metrics and API behavior. An infrastructure of event logging and tracing allows for the timely detection of any anomalies, preventing potential failures or security threats.
In case of performance degradation or suspicious access attempts, the system automatically activates mitigation measures, such as failover to an alternative region or limiting access for potentially malicious users. These strategies help maintain high standards of security and operational continuity, minimizing the impact of any service disruptions.

5.6 Advanced Security Strategies and Data Protection#

Data protection and API security are fundamental elements for ensuring regulatory compliance and protecting users from unauthorized access. AWorld implements a multi-layered security architecture that combines advanced encryption, threat prevention, and timely incident response.

5.6.1 Encryption and Protection of Sensitive Information#

All data managed by the platform is encrypted both in transit and at rest, ensuring maximum protection against unauthorized access or interception. TLS 1.2/1.3 encryption protects all API communications, preventing man-in-the-middle attacks and ensuring the integrity of transmissions. For encryption key management and the protection of sensitive data, AWorld uses a centralized system, reducing the risk of exposure and ensuring that all data is automatically encrypted.

5.6.2 Attack Prevention and API Protection#

To mitigate the risks of cyberattacks and ensure API security, the platform adopts proactive protection measures. An advanced web application firewall (WAF) constantly analyzes traffic and blocks suspicious requests, protecting against vulnerabilities such as SQL Injection and Cross-Site Scripting (XSS).
Each API is subject to rate limiting policies, which limit the number of requests to prevent abuse or DDoS attack attempts. Furthermore, traffic is monitored in real-time by a threat detection system, which identifies anomalous behavior and automatically activates countermeasures to protect the infrastructure.

5.6.3 Security Breach Management and Incident Response#

In the event of a security breach, AWorld has an incident response plan that provides for structured management of anomalies to minimize impact and quickly restore service. The system automatically identifies and isolates suspicious activities, preventing the spread of potential threats.
Security alerts are forwarded in real-time to platform managers, ensuring timely intervention. Once the incident is resolved, a thorough analysis is conducted to identify the cause of the problem and implement corrective measures, reducing the risk of similar events in the future.
Thanks to these strategies, the platform ensures a high level of protection, guaranteeing operational security and minimizing the risk of data exposure.
Modified at 2025-06-26 11:01:06
Previous
Infrastructure and Technology
Next
Getting Started
Built with