Compare Scenarios
Side-by-side comparison with decision path analysis. Every dimension traces back to topology, risk propagation, simulation, and advisor intelligence.
Select Scenarios to Compare
Left Scenario
AI / RAG
Multi-Tenant SaaS
Analytics
Financial Ledger
Read-Heavy
Multi-Tenant SaaS
Write-Heavy
Marketplace
Event-Driven
Financial Ledger
Realtime Collab
Realtime Collab
Financial Ledger
Write-Heavy
AI / RAG
Multi-Tenant SaaS
Event-Driven
Analytics
Read-Heavy
Realtime Collab
Search-Heavy
Event-Driven
Event-Driven
Marketplace
Write-Heavy
Right Scenario
AI / RAG
Multi-Tenant SaaS
Analytics
Financial Ledger
Read-Heavy
Multi-Tenant SaaS
Write-Heavy
Marketplace
Event-Driven
Financial Ledger
Realtime Collab
Realtime Collab
Financial Ledger
Write-Heavy
AI / RAG
Multi-Tenant SaaS
Event-Driven
Analytics
Read-Heavy
Realtime Collab
Search-Heavy
Event-Driven
Event-Driven
Marketplace
Write-Heavy
Topology at a Glance
Architecture Comparison
Read-Heavy SaaS API is both simpler and lower-risk than AI Retrieval-Augmented Generation Platform
Read-Heavy SaaS API is the simpler architecture. Read-Heavy SaaS API carries lower operational risk. They share 3 component(s). Read-Heavy SaaS API has 2 unique risk(s); AI Retrieval-Augmented Generation Platform has 4. Read-Heavy SaaS API requires lower team maturity to operate.
7
Nodes
6
Edges
2
Risks
2
Seeds
5
Strengths
2
Adv. Risks
12
Nodes
0
Edges
4
Risks
2
Seeds
0
Strengths
4
Adv. Risks
Comparison Dimensions
Complexity
Read-Heavy SaaS API
moderate complexity, 7 nodes, 6 edges, 2 risks, 2 simulation seeds
AI Retrieval-Augmented Generation Platform
high complexity, 12 nodes, 0 edges, 4 risks, 2 simulation seeds
Read-Heavy SaaS API is simpler: moderate operational complexity with 7 topology nodes vs 12 for AI Retrieval-Augmented Generation Platform.
Operational Risk
Read-Heavy SaaS API
2 risks (top: high), 2 high/critical, 2 confirmed by simulation
AI Retrieval-Augmented Generation Platform
4 risks (top: high), 2 high/critical, 0 confirmed by simulation
Read-Heavy SaaS API has lower operational risk: weighted severity score 8 vs 12 (2 vs 0 simulation-confirmed).
Scalability
Read-Heavy SaaS API
4 scaling thresholds, 2 migration paths, 9 advisor scaling signals
AI Retrieval-Augmented Generation Platform
4 scaling thresholds, 3 migration paths, 4 advisor scaling signals
Read-Heavy SaaS API has more defined scaling paths: 4 thresholds and 2 migration paths.
Operational Maturity
Read-Heavy SaaS API
Advisor assessment: Intermediate; recommended team: Experienced Backend Team; 7 operational requirements
AI Retrieval-Augmented Generation Platform
Advisor assessment: Advanced; recommended team: Experienced Backend Team; 9 operational requirements
Read-Heavy SaaS API requires lower team maturity (Intermediate) vs Advanced for AI Retrieval-Augmented Generation Platform.
Observability
Read-Heavy SaaS API
8 watched metrics, 3 observability recommendations, 2 simulation seeds
AI Retrieval-Augmented Generation Platform
4 watched metrics, 3 observability recommendations, 2 simulation seeds
AI Retrieval-Augmented Generation Platform has lower observability burden: 4 watched metrics vs 8.
Generator Readiness
Read-Heavy SaaS API
generator relevance documented; topology generation relevance noted; simulation relevance noted; 2 seeds with generator notes
AI Retrieval-Augmented Generation Platform
generator relevance documented; topology generation relevance noted; simulation relevance noted; 2 seeds with generator notes
Both scenarios have comparable generator readiness at this stage. Generator support is preliminary. Neither scenario should be treated as fully generation-ready.
Architecture Components
Only in Read-Heavy SaaS API (4)
Only in AI Retrieval-Augmented Generation Platform (9)
Operational Risks
Only in Read-Heavy SaaS API (2)
Only in AI Retrieval-Augmented Generation Platform (4)
Consistency Guarantees
Neither scenario has a recorded consistency-guarantee claim.
Neither scenario has recorded a consistency-guarantee claim; no guarantee comparison is possible from the data on record.
Tradeoff Summary
Complexity vs Risk
Read-Heavy SaaS API has moderate complexity. AI Retrieval-Augmented Generation Platform has high complexity. Simpler systems often carry different (not necessarily fewer) risks.
Read-Heavy SaaS API
Read-Heavy SaaS API: 2 risks (top: high), 2 high/critical, 2 confirmed by simulation
AI Retrieval-Augmented Generation Platform
AI Retrieval-Augmented Generation Platform: 4 risks (top: high), 2 high/critical, 0 confirmed by simulation
Scaling Path
Read-Heavy SaaS API offers 4 defined scaling thresholds. AI Retrieval-Augmented Generation Platform offers 4. More defined paths means clearer evolution steps but also more anticipated growth.
Read-Heavy SaaS API
4 scaling thresholds, 2 migration paths, 9 advisor scaling signals
AI Retrieval-Augmented Generation Platform
4 scaling thresholds, 3 migration paths, 4 advisor scaling signals
Event-Driven vs Synchronous Processing
AI Retrieval-Augmented Generation Platform uses event stream infrastructure (Kafka/Kinesis), enabling decoupled async processing. Read-Heavy SaaS API does not, keeping the stack simpler but less decoupled.
Read-Heavy SaaS API
No event stream: simpler stack, synchronous dependencies
AI Retrieval-Augmented Generation Platform
Event stream: async decoupling, consumer lag risk, higher ops burden
Architecture Strengths vs Risks Balance
The advisor identifies strengths and risks grounded in knowledge relationships. A higher strengths-to-risks ratio suggests better mitigation coverage in the current topology.
Read-Heavy SaaS API
5 strengths, 2 risks
AI Retrieval-Augmented Generation Platform
0 strengths, 4 risks
Migration Considerations
Migration Step 1
Read-Heavy SaaS API
Single PostgreSQL, no cache, no pooling → PostgreSQL + PgBouncer + Redis cache
AI Retrieval-Augmented Generation Platform
LLM application with no retrieval augmentation (prompt-only context) → PostgreSQL + pgvector for semantic retrieval with manual embedding generation
Both scenarios define a migration step at this stage. Read-Heavy SaaS API: triggered by 'Connection pool exhaustion or p99 read latency > 200ms under'. AI Retrieval-Augmented Generation Platform: triggered by 'LLM responses requiring more factual accuracy or domain-spec'.
Migration Step 2
Read-Heavy SaaS API
PostgreSQL + PgBouncer + Redis cache → PostgreSQL + PgBouncer + Redis + streaming read replica
AI Retrieval-Augmented Generation Platform
Synchronous embedding generation on write path → Asynchronous embedding pipeline via Kafka consumer
Both scenarios define a migration step at this stage. Read-Heavy SaaS API: triggered by 'Primary CPU > 70% during peak read hours'. AI Retrieval-Augmented Generation Platform: triggered by 'Document ingestion p99 > 500ms due to embedding API call in '.
Migration Step 3
Read-Heavy SaaS API
No further migration step defined
AI Retrieval-Augmented Generation Platform
Single pgvector index serving all document types → Partitioned vector indexes per document namespace or tenant
AI Retrieval-Augmented Generation Platform has a defined migration; Read-Heavy SaaS API does not at this stage.
Advisor Notes
Strength: Redis caching absorbs repeated read requests at the edge, reducing database load and latency for high read-to-write ratio workloads by orders of magnitude
Redis caching absorbs repeated read requests at the edge, reducing database load and latency for high read-to-write ratio workloads by orders of magnitude. Key trade-off: Introduces eventual consistency: stale reads possible within TTL window. Operational note: Cache-aside (lazy population) is the dominant integration pattern. Evidence: Cache hit rates of 80–95% observed in production read-heavy APIs.
Risk (high): Connection Pool Exhaustion
All database connections in the pool are in use; new requests queue and then time out, causing cascading latency and errors across all dependent services.
Risk (high): Thundering Herd (Cache Stampede)
When a popular cached key expires or a service recovers from downtime, all requests that were waiting or arrive simultaneously miss the cache and hit the origin database concurrently, producing a request spike that can overwhelm the database within seconds.
Shared Operational Requirements
Both scenarios require: Cache sizing and eviction policy configuration, Minimum team maturity: Experienced Backend Team, PostgreSQL: scenario includes high_write_throughput or write_heavy workload.
Supporting Evidence · 15 items
Coverage Warnings
- ⚠AI Retrieval-Augmented Generation Platform: fewer than 2 architectural strengths identified. the risk/complexity dimensions are present but the strength analysis is thin. Consider enriching the relationship YAMLs referenced by this scenario to improve coverage.
Limitations
- ·Comparison grounded in YAML knowledge only. Not measured from any production system.
- ·Winner assessments are deterministic heuristics, not absolute recommendations. Context, team preferences, and workload specifics may change the conclusion.
- ·2 seed type(s) across both scenarios do not have execution previews. Risk confirmation for those types is unavailable.
- ·Neither scenario has a recorded consistency-guarantee claim. Guarantee comparison is uninformative for this pair, not silently empty.
Read-Heavy SaaS API is the recommended starting point over AI Retrieval-Augmented Generation Platform
Read-Heavy SaaS API leads on 4 weighted dimension(s): Complexity, Operational Risk, Scalability. Weighted score: 6.5 vs 1.0 for AI Retrieval-Augmented Generation Platform.
Decision Intelligence
Architecture Decision Path
Structured reasoning for choosing between Read-Heavy SaaS API and AI Retrieval-Augmented Generation Platform. Every condition and trigger traces back to comparison dimensions, advisor insights, and topology evidence.
Read-Heavy SaaS API is the recommended starting point over AI Retrieval-Augmented Generation Platform
Read-Heavy SaaS API leads on 4 weighted dimension(s): Complexity, Operational Risk, Scalability. Weighted score: 6.5 vs 1.0 for AI Retrieval-Augmented Generation Platform. The architectures share 3 component(s), reducing migration cost if you switch later. Read-Heavy SaaS API is the operationally simpler choice.
Where to Start
Start with Read-Heavy SaaS API
LeftRead-Heavy SaaS API has lower operational complexity. Starting here reduces risk and cognitive load. Migrate to the more capable architecture only when you hit concrete scaling or feature limits.
Complexity: moderate complexity, 7 nodes, 6 edges, 2 risks, 2 simulation seeds
Migrate when:
- p99 database latency rising; connection wait queue growing; requests timing out with "too many connections" or pool queue full errors → Add PgBouncer connection pooler in transaction mode
- Database CPU > 80% sustained; read query p99 rising; cache miss rate stable but overall latency increasing → Add one or more streaming read replicas; implement lag-aware replica routing
- Redis hit rate < 60%; database read pressure rising despite cache presence; TTL expiry storms visible in Redis monitoring → Expand Redis memory allocation; segment cache by object lifecycle; implement staggered TTL jitter to prevent expiry storms
Decision Flow
Does your team have the operational maturity to run AI Retrieval-Augmented Generation Platform (advanced rating)?
If Yes
Your team can operate AI Retrieval-Augmented Generation Platform. Continue to Step 2 to refine based on risk tolerance and workload fit.
If No
Prefer the lower-maturity option: left scenario.
Is operational stability and minimising production risk your primary concern over feature richness or scalability ceiling?
If Yes
Prefer Read-Heavy SaaS API: it carries lower operational risk weight per the advisor's assessment.
If No
Proceed to Step 3 to evaluate based on scaling requirements.
Do you expect your load to reach: p99 database latency rising; connection wait queue growing; requests timing out with "too many connections" or pool queue full errors ?
If Yes
Left scenario has more defined scaling evolution paths for this growth pattern.
If No
If you don't expect to hit these scaling signals soon, prefer the simpler architecture and re-evaluate when load patterns become clearer.
Does your team already operate an event streaming platform (e.g., Kafka, Kinesis, Pub/Sub) in production?
If Yes
AI Retrieval-Augmented Generation Platform builds on event stream infrastructure. Your existing platform reduces the adoption risk.
If No
If you don't have an event streaming platform, the other scenario avoids adding that infrastructure dependency. Evaluate whether the async decoupling benefit justifies the new ops burden.
Is operational simplicity (fewer moving parts, easier debugging, lower ops burden) more important than maximum architectural capability?
If Yes
Read-Heavy SaaS API is the simpler choice: Read-Heavy SaaS API is simpler: moderate operational complexity with 7 topology nodes vs 12 for AI Retrieval-Augmented Generation Platform.
If No
If capability and scalability ceiling matter more than simplicity, evaluate the higher-complexity scenario against your specific load model.
When to Choose Each Scenario
Read-Heavy SaaS API
LeftWhen operational simplicity is a top priority
HighRead-Heavy SaaS API has lower operational complexity: fewer moving parts, easier to reason about and debug.
When stability and predictability matter most
CriticalRead-Heavy SaaS API carries lower overall risk weight per the advisor's assessment.
When you need well-defined scaling thresholds and migration paths
HighRead-Heavy SaaS API has more documented scaling evolution steps (4 thresholds, 2 migration paths).
When your team has limited operational maturity
CriticalRead-Heavy SaaS API is rated intermediate , accessible for teams without deep platform expertise.
When your architecture benefits from: redis caching absorbs repeated read requests at the edge, reducing database load and latency for high read-to-write ratio workloads by orders of magnitude
ModerateRedis caching absorbs repeated read requests at the edge, reducing database load and latency for high read-to-write ratio workloads by orders of magnitude. Key trade-off: Introduces eventual consistency: stale reads possible within TTL window. Operational note: Cache-aside (lazy population) is the dominant integration pattern. Evidence: Cache hit rates of 80–95% observed in production read-heavy APIs.
When your architecture benefits from: a connection pool bounds the total database connections an application can open, preventing connection storms during traffic…
ModerateA connection pool bounds the total database connections an application can open, preventing connection storms during traffic spikes and protecting the database server from exceeding its connection limit. Key trade-off: Pooler becomes a new single point of failure if not replicated. Operational note: PgBouncer transaction-mode pooling is most effective for stateless APIs. Evidence: PgBouncer reduces PostgreSQL connections by 10–100x in typical deployments.
AI Retrieval-Augmented Generation Platform
RightWhen you want to minimise monitoring setup overhead
ModerateAI Retrieval-Augmented Generation Platform has a lower observability burden: fewer watched metrics and monitoring targets.
When your system requires decoupled async event processing
HighAI Retrieval-Augmented Generation Platform includes event stream infrastructure (e.g., Kafka/Kinesis), enabling async decoupling between producers and consumers.
When to Avoid Each Scenario
Read-Heavy SaaS API
LeftWhen your team cannot mitigate: connection pool exhaustion
HighThis architecture is significantly exposed to Connection Pool Exhaustion. All database connections in the pool are in use; new requests queue and then time out, causing cascading latency and errors across all dependent services.
When your team cannot mitigate: replication lag cascade
HighThis architecture is significantly exposed to Replication Lag Cascade. Asynchronous replicas fall behind the primary under write load and serve reads from an older version of the data. Reads keep succeeding, so nothing errors; what breaks is one of three specific consistency guarantees (read-after-write, monotonic reads, or consistent prefix), each with a distinct user-visible anomaly.
When you expect rapid growth within the next 12–18 months
ModerateThe advisor identifies 4 predicted bottlenecks for Read-Heavy SaaS API. Rapid growth will surface these limitations quickly.
AI Retrieval-Augmented Generation Platform
RightWhen your team cannot mitigate: thundering herd (cache stampede)
HighThis architecture is significantly exposed to Thundering Herd (Cache Stampede). When a popular cached key expires or a service recovers from downtime, all requests that were waiting or arrive simultaneously miss the cache and hit the origin database concurrently, producing a request spike that can overwhelm the database within seconds.
When your team cannot mitigate: memory pressure and oom kill
HighThis architecture is significantly exposed to Memory Pressure and OOM Kill. When total memory demand from a process or the entire host exceeds available physical RAM plus swap, the Linux OOM killer terminates one or more processes to reclaim memory, causing immediate connection loss, data corruption risk if in-flight writes are lost, and process restart overhead.
When your team is early-stage or solo
HighAI Retrieval-Augmented Generation Platform is rated 'advanced'. It requires experienced backend engineers or platform tooling to operate reliably at scale.
When you expect rapid growth within the next 12–18 months
ModerateThe advisor identifies 6 predicted bottlenecks for AI Retrieval-Augmented Generation Platform. Rapid growth will surface these limitations quickly.
Team Fit
Solo developer or small startup
LeftRead-Heavy SaaS API is more accessible for small teams. Fewer operational moving parts reduces on-call burden.
- ↳Validate that the simpler architecture can handle your projected load before committing.
Small product team (2–6 engineers)
LeftRead-Heavy SaaS API suits small teams that need to move fast without deep platform tooling investment.
- ↳Consider AI Retrieval-Augmented Generation Platform only if your workload pattern specifically requires it.
Experienced backend team
DependsAn experienced team can operate either architecture. Choose based on workload fit, not team capability.
- ↳Prioritise alignment with existing infrastructure and tooling.
- ↳AI Retrieval-Augmented Generation Platform may require additional runbook coverage and alerting investment.
Platform engineering team or SRE-equipped organisation
RightA platform team can safely operate AI Retrieval-Augmented Generation Platform and will benefit from its more advanced scaling characteristics.
- ↳Ensure observability and alerting are configured before launch.
Migration Triggers
Migration Step 1
Both scenarios define a migration step at this stage. Read-Heavy SaaS API: triggered by 'Connection pool exhaustion or p99 read latency > 200ms under'. AI Retrieval-Augmented Generation Platform: triggered by 'LLM responses requiring more factual accuracy or domain-spec'.
Migration Step 2
Both scenarios define a migration step at this stage. Read-Heavy SaaS API: triggered by 'Primary CPU > 70% during peak read hours'. AI Retrieval-Augmented Generation Platform: triggered by 'Document ingestion p99 > 500ms due to embedding API call in '.
Migration Step 3
AI Retrieval-Augmented Generation Platform has a defined migration; Read-Heavy SaaS API does not at this stage.
p99 database latency rising; connection wait queue growing; requests timing out with "too many connections" or pool queue full errors
Tier 1: Connection Exhaustion: Database connection pool saturated or max_connections exceeded. Recommended evolution: Add PgBouncer connection pooler in transaction mode.
Database CPU > 80% sustained; read query p99 rising; cache miss rate stable but overall latency increasing
Tier 2: Read Throughput Ceiling: Single PostgreSQL primary saturated with read traffic. Recommended evolution: Add one or more streaming read replicas; implement lag-aware replica routing.
Retrieval quality metrics (MRR, NDCG) declining despite stable query volume; users reporting irrelevant context being surfaced; pgvector IVFFlat probes set below recommended value for current document count
Tier 1: Vector Index Recall Degradation: IVFFlat index not rebuilt after significant document additions; or probes too low for current index size. Recommended evolution: Schedule periodic index rebuilds triggered by document count growth (e.g., rebuild at 2x the document count present at last index build); increase ivfflat.probes to improve recall at cost of query latency; evaluate HNSW for recall-critical workloads .
PostgreSQL process memory > 8GB; OOM killer events on the database host; vector query p99 latency increasing as shared_buffers evicts vector index pages; pg_stat_bgwriter showing high buffers_clean rate
Tier 2: PostgreSQL Memory Pressure from Vector Operations: Vector index (HNSW or large IVFFlat) and embedding storage competing with relational data for shared_buffers. Recommended evolution: Increase PostgreSQL shared_buffers to 40% of available RAM; move vector tables to a dedicated tablespace on NVMe; partition large vector tables by document category to reduce per-query index scan range; evaluate dedicated pgvector replica for query isolation .
Readiness Requirements
Cache sizing and eviction policy configuration
BothRedis or equivalent cache requires correct maxmemory configuration, eviction policy selection (allkeys-lru is common), and cold-start warming strategy after restarts.
Minimum team maturity: Experienced Backend Team
BothThis scenario has moderate operational complexity. It is recommended for Experienced Backend Team teams or higher.
Required maturity: experienced_backend_team
PostgreSQL: scenario includes high_write_throughput or write_heavy workload
BothDeploy PgBouncer in transaction-mode pooling before relying on vertical scaling
Required maturity: mid_level
Redis: scenario has read_heavy workload with high cache miss risk
BothImplement cache stampede protection (probabilistic early expiry or locking) to prevent thundering herd on cold start
Required maturity: junior
Redis: scenario relies on Redis for data that cannot be re-derived
BothRedis is not a durable store: add persistence layer or treat Redis as expendable cache only
Required maturity: junior
Runbooks and alerting for high-severity risks
Both2 high-severity risks identified. Each requires a documented runbook, alerting threshold, and on-call response procedure before running in production.
Replica lag monitoring and lag-aware routing
LeftRead replicas must be monitored for replication lag. The application router must include a max_lag_ms threshold; queries above that threshold must be redirected to the primary.
Apache Kafka: scenario has team_maturity below senior
RightKafka operational complexity requires dedicated expertise: consider MSK or Confluent Cloud to reduce ops burden
Required maturity: senior
Apache Kafka: scenario uses Kafka for event streaming or CDC
RightSet min.insync.replicas=2 with acks=all; monitor consumer lag as primary health signal
Required maturity: senior
Event stream operations expertise
RightThis architecture includes event stream infrastructure (Kafka, Kinesis, or similar). Operations requires consumer group management, partition assignment, dead-letter handling, and lag monitoring.
Required maturity: platform_engineering_team
Generator Constraints
Read-Heavy SaaS API
LeftGenerator relevance documented but not yet production-ready.
This scenario is the most common initial architecture for read-heavy SaaS products. The generator should recommend this composition whenever the input brief specifies a read-heavy API workload with moderate consistency requirements. The technology and pattern selections here should be presented as a bundle, not as isolated independent recommendations.
AI Retrieval-Augmented Generation Platform
RightGenerator relevance documented but not yet production-ready.
For AI product briefs requiring semantic retrieval over a document corpus, the generator should propose PostgreSQL + pgvector + Redis semantic cache + Kafka embedding pipeline as the canonical starting point. Dedicated vector databases (Qdrant, Weaviate, Pinecone) should be presented as migration paths for scale-out needs, not as default recommendations. The generator must output retrieval quality evaluation as a mandatory operational requirement alongside latency and error rate monitoring.
Supporting Evidence
| Type | Reference | Explanation |
|---|---|---|
| Comparison | compare_read_heavy_saas_api_vs_ai_rag_platform | Full comparison of Read-Heavy SaaS API vs AI Retrieval-Augmented Generation Platform: 6 dimensions, 3 shared components, 0 shared risks. |
| Advisor | advisor_read_heavy_saas_api | Advisor for Read-Heavy SaaS API: 5 strengths, 2 risks, maturity: intermediate. |
| Advisor | advisor_ai_rag_platform | Advisor for AI Retrieval-Augmented Generation Platform: 0 strengths, 4 risks, maturity: advanced. |
| Scenario | read_heavy_saas_api | Scenario 'Read-Heavy SaaS API': 4 scaling thresholds, 2 migration paths, complexity: moderate. |
| Scenario | ai_rag_platform | Scenario 'AI Retrieval-Augmented Generation Platform': 4 scaling thresholds, 3 migration paths, complexity: high. |
| Risk Path | prop_technology_profile_redis_risk_connection_exhaustion | Redis → Connection Pool Exhaustion |
| Risk Path | prop_architecture_pattern_read_replica_risk_replication_lag_cascade | Read Replica → Replication Lag Cascade |
| Risk Path | prop_technology_profile_redis_risk_thundering_herd | Redis → Thundering Herd (Cache Stampede) |
| Risk Path | prop_workload_profile_ai_embedding_lookup_risk_memory_pressure_oom | AI Embedding Lookup → Memory Pressure and OOM Kill |
| Risk Path | prop_technology_profile_redis_risk_connection_exhaustion | Referenced by the operational risk comparison dimension. |
| Risk Path | prop_architecture_pattern_read_replica_risk_replication_lag_cascade | Referenced by the operational risk comparison dimension. |
Limitations
- ·Decision guidance is grounded in YAML knowledge only. Not measured from any production system.
- ·Recommendations are deterministic heuristics based on structured knowledge. Your specific workload, team profile, and business context may lead to different conclusions.
- ·Generator constraints are preliminary. No scenario should be treated as production generation-ready at this stage.
Comparison complete
Profile, topology, simulation, advisor, comparison, and decision path are ready. Your architecture decision is grounded in structured knowledge and deterministic reasoning.