Tech Stack Options & Considerations

This document presents technology alternatives for consideration. These are SUGGESTIONS, not definitive choices. Each option includes trade-offs for the team to evaluate.

Decision Framework

When evaluating alternatives, consider:

FactorWeightNotes
Operational ComplexityHighCan we operate it?
CostMediumTotal cost of ownership
PerformanceHighMeets latency requirements?
ScalabilityMediumGrows with us?
Vendor Lock-inLowCan we migrate if needed?

Database Options

Option A: Prisma Postgres (Current Choice)

Managed PostgreSQL with integrated ORM, connection pooling, and edge caching.

Pros:

  • Unified platform (DB + ORM + Caching)
  • Serverless-optimized connection pooling
  • Simple pricing ($49/mo Pro plan)
  • Built-in edge caching (Prisma Accelerate, 300+ locations)
  • Type-safe queries with Prisma Client
  • Excellent developer experience
  • No additional infrastructure to manage

Cons:

  • Single vendor dependency
  • Limited regional availability
  • Newer platform (less battle-tested at scale)
  • No built-in multi-region replication

Best For: MVP, startups, teams prioritizing simplicity


Option B: CockroachDB (Alternative Suggestion)

Distributed SQL database with built-in multi-region support.

Pros:

  • Distributed SQL with ACID guarantees
  • Multi-region by design (survives region failures)
  • PostgreSQL wire-compatible
  • Prevents "double-booking" across regions
  • Automatic sharding and rebalancing
  • Strong consistency across regions

Cons:

  • Higher operational complexity
  • Higher cost (~$300+/month for dedicated)
  • Requires more expertise to tune
  • Latency overhead for cross-region consistency
  • Overkill for single-region deployment

Best For: Multi-region deployments, high-availability requirements


Recommendation

StageRecommendation
MVP/LaunchPrisma Postgres - simplicity wins
GrowthEvaluate CockroachDB if multi-region becomes critical
ScaleCockroachDB for global consistency requirements

Caching Options

Option A: Prisma Accelerate (Current Choice)

Query-level caching built into Prisma Postgres.

Pros:

  • Built into Prisma Postgres (no additional service)
  • 300+ edge locations globally
  • Query-level caching
  • Automatic cache invalidation
  • No additional infrastructure

Cons:

  • Limited to query caching
  • No pub/sub capability
  • No session storage
  • No custom data structures
  • Cannot implement 10-minute inventory holds

Best For: Query caching, read-heavy workloads


Option B: Redis (Alternative Suggestion)

In-memory data store for caching, sessions, and real-time features.

Pros:

  • Sub-millisecond latency
  • Ideal for 10-minute inventory holds (TTL support)
  • Session storage
  • Pub/sub for real-time updates
  • Rich data structures (sets, sorted sets, hashes)
  • Widely supported, battle-tested

Cons:

  • Additional service to manage
  • Additional cost (~$50-100/month for managed)
  • Requires connection management
  • Memory-bound (can get expensive at scale)

Best For: Inventory holds, sessions, real-time features


Recommendation

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   Recommended: USE BOTH                                         │
│                                                                 │
│   Prisma Accelerate → Query caching                             │
│   Redis             → Inventory holds, sessions, real-time      │
│                                                                 │
│   They serve different purposes and complement each other.      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Messaging Options

Option A: EventBridge (Current Choice)

AWS-native event bus for event-driven architecture.

Pros:

  • Native AWS integration
  • Serverless (no infrastructure)
  • Event filtering and routing
  • Low cost at moderate volume
  • Schema registry
  • Easy to set up

Cons:

  • Limited throughput (~10K events/sec)
  • No event replay/reprocessing
  • AWS-specific (vendor lock-in)
  • Limited consumer patterns
  • No stream processing

Best For: Event routing, serverless workflows, moderate volume


Option B: Apache Kafka (Alternative Suggestion)

Distributed event streaming platform.

Pros:

  • Massive throughput (millions of events/sec)
  • Event replay and reprocessing
  • Multi-consumer patterns
  • Stream processing capabilities
  • Industry standard
  • Portable across clouds

Cons:

  • Significant operational overhead
  • Higher cost (AWS MSK ~$200+/month minimum)
  • Requires expertise to operate
  • Overkill for current scale
  • Complex configuration

Best For: High-volume streaming, event sourcing, complex processing


Recommendation

VolumeRecommendation
<10K events/secEventBridge - simpler, cheaper
>10K events/secEvaluate Kafka
Need replayKafka - EventBridge can't replay

Identity Options

Option A: Cognito (Current Choice)

AWS-native identity and access management.

Pros:

  • Native AWS integration
  • Low cost (free tier generous)
  • Built-in MFA
  • Serverless
  • JWT tokens out of the box
  • Social login support

Cons:

  • Limited customization
  • Vendor lock-in to AWS
  • Basic analytics and insights
  • Limited branding options
  • Clunky user migration

Best For: AWS-native apps, cost-sensitive projects


Option B: Auth0/Okta (Alternative Suggestion)

Enterprise identity platform with advanced features.

Pros:

  • Superior developer experience
  • Advanced security (breached password detection)
  • Better social login support
  • Cross-cloud portable
  • Extensive customization
  • Better analytics and insights
  • Universal Login page

Cons:

  • Significant cost ($3-5K/month at scale)
  • External dependency (latency)
  • Can be complex to configure
  • Pricing scales with MAU

Best For: Enterprise features, multi-cloud, advanced security


Recommendation

StageRecommendation
MVP/LaunchCognito - sufficient and cost-effective
Enterprise features neededEvaluate Auth0
Multi-cloud requirementAuth0/Okta

Protocol Options

Option A: REST/JSON (Current Choice)

Standard HTTP REST APIs with JSON payloads.

Pros:

  • Universal compatibility
  • Easy to debug (human-readable)
  • Extensive tooling
  • No special client libraries needed
  • Browser-friendly

Cons:

  • Higher latency than binary protocols
  • Larger payload sizes
  • No built-in streaming
  • No strong typing (without OpenAPI)

Best For: Public APIs, browser clients, aggregator integration


Option B: gRPC (Alternative Suggestion)

Binary protocol with strong typing and streaming.

Pros:

  • Sub-millisecond latency
  • Smaller payloads (Protocol Buffers)
  • Strong typing with code generation
  • Bi-directional streaming
  • Better for service-to-service

Cons:

  • Not browser-native (needs proxy)
  • Harder to debug
  • Learning curve
  • Less tooling than REST

Best For: Internal microservices, high-performance paths


Recommendation

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   External APIs (NDC, aggregators)  → REST/JSON                 │
│   Internal services                 → Evaluate gRPC             │
│                                                                 │
│   Priority paths (inventory lock)   → Consider gRPC             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Cloud Provider

Current: AWS

No compelling reason to change. Benefits:

  • Lambda for serverless compute
  • API Gateway for API management
  • EventBridge for events
  • S3 for storage
  • CloudFront for CDN
  • Regional presence in South America

Alternative Consideration

Multi-cloud is not recommended at this stage:

  • Adds complexity without clear benefit
  • Higher operational cost
  • Most vendors (Prisma, etc.) work well with AWS

Summary Matrix

CategoryCurrentAlternativeRecommendation
DatabasePrisma PostgresCockroachDBCurrent (evaluate later)
CachePrisma AccelerateRedisADD Redis for holds
MessagingEventBridgeKafkaCurrent (evaluate at scale)
IdentityCognitoAuth0/OktaCurrent (evaluate for features)
ProtocolREST/JSONgRPCREST external, evaluate gRPC internal
CloudAWSMulti-cloudStay AWS

Decision Log

DateDecisionRationale
TBDAdd RedisRequired for 10-min inventory holds
TBDKeep Prisma PostgresSufficient for launch
TBDKeep EventBridgeVolume doesn't justify Kafka
TBDKeep CognitoCost-effective for launch

Review Triggers

Revisit these decisions when:

  • Multi-region deployment required → CockroachDB
  • Event volume >10K/sec → Kafka
  • Enterprise SSO required → Auth0/Okta
  • Internal service latency critical → gRPC
  • Inventory hold failures occur → Redis tuning