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). AI Retrieval-Augmented Generation Platform has 4 unique risk(s); Read-Heavy SaaS API has 2. Read-Heavy SaaS API requires lower team maturity to operate.
12
Nodes
0
Edges
4
Risks
2
Seeds
0
Strengths
4
Adv. Risks
7
Nodes
6
Edges
2
Risks
2
Seeds
5
Strengths
2
Adv. Risks
Comparison Dimensions
Complexity
AI Retrieval-Augmented Generation Platform
high complexity, 12 nodes, 0 edges, 4 risks, 2 simulation seeds
Read-Heavy SaaS API
moderate complexity, 7 nodes, 6 edges, 2 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
AI Retrieval-Augmented Generation Platform
4 risks (top: high), 2 high/critical, 0 confirmed by simulation
Read-Heavy SaaS API
2 risks (top: high), 2 high/critical, 2 confirmed by simulation
Read-Heavy SaaS API has lower operational risk: weighted severity score 8 vs 12 (2 vs 0 simulation-confirmed).
Scalability
AI Retrieval-Augmented Generation Platform
4 scaling thresholds, 3 migration paths, 4 advisor scaling signals
Read-Heavy SaaS API
4 scaling thresholds, 2 migration paths, 9 advisor scaling signals
Read-Heavy SaaS API has more defined scaling paths: 4 thresholds and 2 migration paths.
Operational Maturity
AI Retrieval-Augmented Generation Platform
Advisor assessment: Advanced; recommended team: Experienced Backend Team; 9 operational requirements
Read-Heavy SaaS API
Advisor assessment: Intermediate; recommended team: Experienced Backend Team; 7 operational requirements
Read-Heavy SaaS API requires lower team maturity (Intermediate) vs Advanced for AI Retrieval-Augmented Generation Platform.
Observability
AI Retrieval-Augmented Generation Platform
4 watched metrics, 3 observability recommendations, 2 simulation seeds
Read-Heavy SaaS API
8 watched metrics, 3 observability recommendations, 2 simulation seeds
AI Retrieval-Augmented Generation Platform has lower observability burden: 4 watched metrics vs 8.
Generator Readiness
AI Retrieval-Augmented Generation Platform
generator relevance documented; topology generation relevance noted; simulation relevance noted; 2 seeds with generator notes
Read-Heavy SaaS API
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 AI Retrieval-Augmented Generation Platform (9)
Only in Read-Heavy SaaS API (4)
Operational Risks
Only in AI Retrieval-Augmented Generation Platform (4)
Only in Read-Heavy SaaS API (2)
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
AI Retrieval-Augmented Generation Platform has high complexity. Read-Heavy SaaS API has moderate complexity. Simpler systems often carry different (not necessarily fewer) risks.
AI Retrieval-Augmented Generation Platform
AI Retrieval-Augmented Generation Platform: 4 risks (top: high), 2 high/critical, 0 confirmed by simulation
Read-Heavy SaaS API
Read-Heavy SaaS API: 2 risks (top: high), 2 high/critical, 2 confirmed by simulation
Scaling Path
AI Retrieval-Augmented Generation Platform offers 4 defined scaling thresholds. Read-Heavy SaaS API offers 4. More defined paths means clearer evolution steps but also more anticipated growth.
AI Retrieval-Augmented Generation Platform
4 scaling thresholds, 3 migration paths, 4 advisor scaling signals
Read-Heavy SaaS API
4 scaling thresholds, 2 migration paths, 9 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.
AI Retrieval-Augmented Generation Platform
Event stream: async decoupling, consumer lag risk, higher ops burden
Read-Heavy SaaS API
No event stream: simpler stack, synchronous dependencies
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.
AI Retrieval-Augmented Generation Platform
0 strengths, 4 risks
Read-Heavy SaaS API
5 strengths, 2 risks
Migration Considerations
Migration Step 1
AI Retrieval-Augmented Generation Platform
LLM application with no retrieval augmentation (prompt-only context) → PostgreSQL + pgvector for semantic retrieval with manual embedding generation
Read-Heavy SaaS API
Single PostgreSQL, no cache, no pooling → PostgreSQL + PgBouncer + Redis cache
Both scenarios define a migration step at this stage. AI Retrieval-Augmented Generation Platform: triggered by 'LLM responses requiring more factual accuracy or domain-spec'. Read-Heavy SaaS API: triggered by 'Connection pool exhaustion or p99 read latency > 200ms under'.
Migration Step 2
AI Retrieval-Augmented Generation Platform
Synchronous embedding generation on write path → Asynchronous embedding pipeline via Kafka consumer
Read-Heavy SaaS API
PostgreSQL + PgBouncer + Redis cache → PostgreSQL + PgBouncer + Redis + streaming read replica
Both scenarios define a migration step at this stage. AI Retrieval-Augmented Generation Platform: triggered by 'Document ingestion p99 > 500ms due to embedding API call in '. Read-Heavy SaaS API: triggered by 'Primary CPU > 70% during peak read hours'.
Migration Step 3
AI Retrieval-Augmented Generation Platform
Single pgvector index serving all document types → Partitioned vector indexes per document namespace or tenant
Read-Heavy SaaS API
No further migration step defined
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): 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.
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.
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 AI Retrieval-Augmented Generation Platform and Read-Heavy SaaS API. 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
RightRead-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: right 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
Right 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
AI Retrieval-Augmented Generation Platform
LeftWhen 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.
Read-Heavy SaaS API
RightWhen 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.
When to Avoid Each Scenario
AI Retrieval-Augmented Generation Platform
LeftWhen 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.
Read-Heavy SaaS API
RightWhen 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.
Team Fit
Solo developer or small startup
RightRead-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)
RightRead-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
LeftA 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. AI Retrieval-Augmented Generation Platform: triggered by 'LLM responses requiring more factual accuracy or domain-spec'. Read-Heavy SaaS API: triggered by 'Connection pool exhaustion or p99 read latency > 200ms under'.
Migration Step 2
Both scenarios define a migration step at this stage. AI Retrieval-Augmented Generation Platform: triggered by 'Document ingestion p99 > 500ms due to embedding API call in '. Read-Heavy SaaS API: triggered by 'Primary CPU > 70% during peak read hours'.
Migration Step 3
AI Retrieval-Augmented Generation Platform has a defined migration; Read-Heavy SaaS API does not at this stage.
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 .
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.
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 high 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.
Apache Kafka: scenario has team_maturity below senior
LeftKafka 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
LeftSet min.insync.replicas=2 with acks=all; monitor consumer lag as primary health signal
Required maturity: senior
Event stream operations expertise
LeftThis 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
Replica lag monitoring and lag-aware routing
RightRead 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.
Generator Constraints
AI Retrieval-Augmented Generation Platform
LeftGenerator 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.
Read-Heavy SaaS API
RightGenerator 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.
Supporting Evidence
| Type | Reference | Explanation |
|---|---|---|
| Comparison | compare_ai_rag_platform_vs_read_heavy_saas_api | Full comparison of AI Retrieval-Augmented Generation Platform vs Read-Heavy SaaS API: 6 dimensions, 3 shared components, 0 shared risks. |
| Advisor | advisor_ai_rag_platform | Advisor for AI Retrieval-Augmented Generation Platform: 0 strengths, 4 risks, maturity: advanced. |
| Advisor | advisor_read_heavy_saas_api | Advisor for Read-Heavy SaaS API: 5 strengths, 2 risks, maturity: intermediate. |
| Scenario | ai_rag_platform | Scenario 'AI Retrieval-Augmented Generation Platform': 4 scaling thresholds, 3 migration paths, complexity: high. |
| Scenario | read_heavy_saas_api | Scenario 'Read-Heavy SaaS API': 4 scaling thresholds, 2 migration paths, complexity: moderate. |
| 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 | 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 | Referenced by the operational risk comparison dimension. |
| Risk Path | prop_workload_profile_ai_embedding_lookup_risk_memory_pressure_oom | 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.