{
    "outcomes": {
        "valkey": {
            "title": "⚡ ElastiCache Valkey",
            "desc": "You need ultra-fast, sub-millisecond data caching for simple key-value pairs that don't need persistent storage."
        },
        "aurora": {
            "title": "🐘 Aurora PostgreSQL",
            "desc": "You have a standard transactional workload that relies heavily on a rigid relational model and standard SQL."
        },
        "mongo": {
            "title": "🍃 MongoDB Atlas",
            "desc": "You need the flexibility of a document model, larger payload sizes, and advanced native querying like Vector Search."
        },
        "dynamo": {
            "title": "📦 Amazon DynamoDB",
            "desc": "You have a transactional workload but only need simple primary-key lookups under the 400KB limit for massive-scale performance."
        }
    },
    "questions": [
        {
            "id": "q1",
            "text": "1. What is the primary nature of your workload?",
            "options": [
                { "text": "[A] Transactional operations (OLTP) / App Backend", "scores": { "aurora": 1, "mongo": 1, "dynamo": 1 } },
                { "text": "[B] Temporary data caching or session management", "scores": { "valkey": 10 } }
            ]
        },
        {
            "id": "q2",
            "text": "2. How flexible does your data model need to be? (multiple data types, nested/complex documents)",
            "options": [
                { "text": "[A] Flexible schema with complex, nested or JSON-like documents", "scores": { "mongo": 3, "dynamo": 1 } },
                { "text": "[B] Strictly relational with rigid rules and complex joins", "scores": { "aurora": 3 } },
                { "text": "[C] Simple key-value / mostly schema-less lookups", "scores": { "valkey": 3, "dynamo": 1 } }
            ]
        },
        {
            "id": "q3",
            "text": "3. What indexing capabilities do you require?",
            "options": [
                { "text": "[A] Rich secondary indexes: compound, multikey, text, geospatial", "scores": { "mongo": 3, "aurora": 3 } },
                { "text": "[B] A few secondary indexes (e.g., DynamoDB GSIs)", "scores": { "dynamo": 2, "mongo": 1, "aurora": 1 } },
                { "text": "[C] Primary-key / exact-key lookups only", "scores": { "valkey": 3, "dynamo": 2 } }
            ]
        },
        {
            "id": "q4",
            "text": "4. What are your latency requirements / Golden SLO?",
            "options": [
                { "text": "[A] Guaranteed sub-millisecond response times", "scores": { "valkey": 3, "dynamo": 1 } },
                { "text": "[B] Reliable single-digit millisecond latency", "scores": { "mongo": 2, "aurora": 2, "dynamo": 2, "valkey": 2 } },
                { "text": "[C] Standard query performance is acceptable", "scores": { "mongo": 1, "aurora": 1, "dynamo": 1 } }
            ]
        },
        {
            "id": "q5",
            "text": "5. What is the maximum size of a single record/document?",
            "options": [
                { "text": "[A] Variable, sometimes very large (up to 16MB BSON / complex documents)", "scores": { "mongo": 3, "valkey": 1 } },
                { "text": "[B] Consistently small (strictly under 400KB)", "scores": { "dynamo": 3, "valkey": 1 } },
                { "text": "[C] Standard tabular rows", "scores": { "aurora": 2 } }
            ]
        },
        {
            "id": "q6",
            "text": "6. What is your read/write workload pattern?",
            "options": [
                { "text": "[A] Write-heavy (read-light) — high write throughput", "scores": { "valkey": 3, "dynamo": 3, "mongo": 1, "aurora": 1 } },
                { "text": "[B] Read-heavy (write-light) — scale reads", "scores": { "mongo": 3, "aurora": 3, "valkey": 3, "dynamo": 3 } },
                { "text": "[C] Mixed / balanced workload", "scores": { "mongo": 2, "aurora": 2, "valkey": 2, "dynamo": 2 } }
            ]
        },
        {
            "id": "q7",
            "text": "7. What are your search and querying requirements?",
            "options": [
                { "text": "[A] Native Vector Search and/or Full-Text Search (auto-embedding)", "scores": { "mongo": 5, "aurora": 1 } },
                { "text": "[B] Standard SQL queries and joins", "scores": { "aurora": 3 } },
                { "text": "[C] Basic read/write lookups by primary key", "scores": { "dynamo": 3, "valkey": 2 } }
            ]
        },
        {
            "id": "q8",
            "text": "8. How do you need to scale horizontally?",
            "options": [
                { "text": "[A] Massive horizontal write scale via native sharding/partitioning", "scores": { "mongo": 3, "valkey": 3, "dynamo": 3 } },
                { "text": "[B] Read-replica scaling is sufficient (writes stay on one node)", "scores": { "aurora": 3, "mongo": 3, "valkey": 3, "dynamo": 3 } },
                { "text": "[C] Single-instance scale is fine for now", "scores": { "aurora": 2, "mongo": 1 } }
            ]
        },
        {
            "id": "q9",
            "text": "9. Do you need active-active writes across geographic regions?",
            "options": [
                { "text": "[A] Yes — multi-region multi-active writes (e.g., US and EU)", "scores": { "mongo": 3, "dynamo": 3 } },
                { "text": "[B] Cross-region replication for local reads only", "scores": { "mongo": 2, "aurora": 2, "valkey": 2, "dynamo": 2 } },
                { "text": "[C] Single-region deployment is fine", "scores": { "mongo": 1, "aurora": 1, "valkey": 1, "dynamo": 1 } }
            ]
        },
        {
            "id": "q10",
            "text": "10. How important is cost predictability at scale?",
            "options": [
                { "text": "[A] Need fixed, predictable monthly costs (instance/tier-based)", "scores": { "mongo": 2, "aurora": 2, "valkey": 2, "dynamo": 1 } },
                { "text": "[B] Comfortable with usage-based / on-demand pricing that scales with traffic", "scores": { "dynamo": 2, "mongo": 1, "aurora": 1, "valkey": 1 } }
            ]
        },
        {
            "id": "q11",
            "text": "11. How much manual effort can you spend managing data lifecycle (hot / warm / cold)?",
            "options": [
                { "text": "[A] Need native TTL plus automated tiering to cold storage (e.g., S3) with queryable archive", "scores": { "mongo": 3, "dynamo": 1 } },
                { "text": "[B] Built-in TTL is enough; some manual setup for cold storage is OK", "scores": { "dynamo": 2, "valkey": 1, "mongo": 2 } },
                { "text": "[C] Manual partitioning and cleanup scripts are acceptable", "scores": { "aurora": 1, "mongo": 1, "dynamo": 1, "valkey": 1 } }
            ]
        }
    ]
}
