PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Snowflake

Design an ACL authorization checking service

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design and security architecture skills, focusing on centralized authorization/ACL models, API and data modeling, caching and consistency strategies, scalability, multi-tenant isolation, and operational concerns for low-latency, highly available services in a microservices environment.

  • hard
  • Snowflake
  • System Design
  • Software Engineer

Design an ACL authorization checking service

Company: Snowflake

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design a centralized **authorization (ACL) checking service** used by other internal services to decide whether a principal can perform an action on a resource. ### Context Multiple microservices (e.g., `Orders`, `Docs`, `Billing`) need consistent access control. Instead of each service implementing authorization logic, they call an internal service to evaluate policies. ### Requirements **Core functionality** - Provide a decision API: given `(principal, action, resource, context)` return **ALLOW/DENY**. - Support common ACL semantics: - Principals: users and service accounts. - Resources: hierarchical resources (e.g., `/orgs/{id}/projects/{id}/docs/{id}`) and non-hierarchical resources. - Actions: `read`, `write`, `delete`, `admin`, etc. - Groups/roles (optional) and explicit per-resource grants. - Default deny; explicit deny should override allow (if you choose to support denies). - Policy management: - Create/update/delete policies and group memberships. - Changes should propagate to authorization decisions quickly. **Non-functional** (make reasonable assumptions and state them) - Low latency for checks (e.g., single-digit ms p99 inside a region). - High availability (e.g., 99.99%+). - High read-to-write ratio (checks are frequent; policy updates are relatively infrequent). - Multi-tenant support and isolation. - Strong security (authn/authz for callers, auditability). ### Deliverables - High-level architecture and main components. - API design (check + management APIs). - Data model for ACLs/roles/groups. - Caching strategy and consistency/invalidation approach. - Handling scale, multi-region, failure modes, and security. - Observability: key metrics and logs/audit trails.

Quick Answer: This question evaluates system design and security architecture skills, focusing on centralized authorization/ACL models, API and data modeling, caching and consistency strategies, scalability, multi-tenant isolation, and operational concerns for low-latency, highly available services in a microservices environment.

Related Interview Questions

  • Design a Cron Job Scheduler - Snowflake (medium)
  • Design a disk-backed KV store under contention - Snowflake (easy)
  • Design an object store with deduplication - Snowflake (medium)
  • Design a distributed system end-to-end - Snowflake (hard)
  • Design resilient auth with flaky third-party tokens - Snowflake (hard)
Snowflake logo
Snowflake
Jan 6, 2026, 12:00 AM
Software Engineer
Technical Screen
System Design
19
0
Loading...

Design a centralized authorization (ACL) checking service used by other internal services to decide whether a principal can perform an action on a resource.

Context

Multiple microservices (e.g., Orders, Docs, Billing) need consistent access control. Instead of each service implementing authorization logic, they call an internal service to evaluate policies.

Requirements

Core functionality

  • Provide a decision API: given (principal, action, resource, context) return ALLOW/DENY .
  • Support common ACL semantics:
    • Principals: users and service accounts.
    • Resources: hierarchical resources (e.g., /orgs/{id}/projects/{id}/docs/{id} ) and non-hierarchical resources.
    • Actions: read , write , delete , admin , etc.
    • Groups/roles (optional) and explicit per-resource grants.
    • Default deny; explicit deny should override allow (if you choose to support denies).
  • Policy management:
    • Create/update/delete policies and group memberships.
    • Changes should propagate to authorization decisions quickly.

Non-functional (make reasonable assumptions and state them)

  • Low latency for checks (e.g., single-digit ms p99 inside a region).
  • High availability (e.g., 99.99%+).
  • High read-to-write ratio (checks are frequent; policy updates are relatively infrequent).
  • Multi-tenant support and isolation.
  • Strong security (authn/authz for callers, auditability).

Deliverables

  • High-level architecture and main components.
  • API design (check + management APIs).
  • Data model for ACLs/roles/groups.
  • Caching strategy and consistency/invalidation approach.
  • Handling scale, multi-region, failure modes, and security.
  • Observability: key metrics and logs/audit trails.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Snowflake•More Software Engineer•Snowflake Software Engineer•Snowflake System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.