Pains

726 pains collected

Severity:

Compliance and regulatory requirement management

6

Meeting regulatory requirements and compliance standards is a significant challenge for AWS developers. Applications must comply with industry regulations and follow governance best practices.

securityAWS

Cost vs. performance optimization tradeoffs

6

Developers must balance using the best resources for performance with managing costs. Finding the optimal resource configuration to meet both requirements is a constant struggle.

performanceAWS

Application scalability and dynamic workload handling

6

Designing applications that can handle varying workloads and scale up or down quickly is difficult. Predicting traffic patterns and configuring auto-scaling appropriately requires expertise.

performanceAWS EC2AWS RDSAWS DynamoDB

Complex and Inconsistent API Authentication Options

6

APIs offer confusing authentication mechanisms with multiple versions (especially OAuth), inconsistent implementations, and poor documentation of authentication flows. Getting credentials and understanding the correct authentication method is often one of the trickiest initial steps, especially when API teams and customers have mismatched use-case assumptions.

authOAuth

AWS Lambda missing framework guidance and bundle size limitations

6

Developers often start Lambda projects without frameworks, forcing manual setup of API Gateway and CloudWatch integrations. As architectures grow, the 50MB default deployment size limit becomes a constraint, requiring webpack bundling per function to stay under limits and improve deployment speed.

configAWS LambdaAPI GatewayCloudWatch+1

Backend-as-a-Service pricing cliffs and inflexibility

6

Developers using Backend-as-a-Service solutions for AI agents encounter pricing cliffs as soon as their app gains traction. BaaS platforms also lock in behavior and reduce flexibility to fine-tune backend operations, forcing developers who need control to migrate to IaaS platforms like AWS or Azure.

configAI agentsBaaSAWS+1

Time-consuming and error-prone SQL query creation

6

Building complex SQL queries is tedious, error-prone, and time-consuming. Developers frequently resort to AI assistance rather than writing queries manually, and must often redo work when requirements change or new clients appear.

dxPostgreSQLSQL

Insufficient documentation for application handoffs and legacy code recovery

6

When inheriting applications (whether from contractors or former team members), there is often no documentation about dependencies, installation requirements, database contents, or what components exist. This makes it impossible to know if legacy code can even run without significant reverse engineering.

docs

Difficult debugging with long application workflows and complex database logic

6

Diagnosing failures becomes increasingly difficult when issues could originate from the database or application code. Long workflows and complex database-side logic require extensive investigation, making root cause analysis time-consuming.

debugPostgreSQL

PostgreSQL configuration parameters require server restart and are difficult to debug

6

Configuration adjustments require a full server restart to take effect, making it risky to tune in production. Logs are noisy and difficult to access in ephemeral or PaaS environments, especially without tools like PG Badger.

configPostgreSQL

Excessive or duplicate indexes degrade write performance and storage

6

Unused or duplicate indexes cause every database modification to unnecessarily update those indexes, resulting in high storage utilization and IOPs consumption. This creates a silent performance drag that isn't immediately obvious.

performancePostgreSQL

Built-in replication cannot selectively replicate individual databases

6

PostgreSQL's built-in replication replicates entire clusters with the same settings and priority, not individual databases. This forces teams to manage multiple separate clusters to control replication groups, significantly increasing management complexity and operational overhead.

configPostgreSQLreplication

Backup and disaster recovery complexity at scale

6

As data volume grows to terabytes and petabytes, teams struggle to establish robust backup and recovery systems that ensure zero data loss. The complexity of managing backups at scale, combined with the need for rapid recovery, creates operational burden and concerns about data durability.

storagePostgreSQL

Lack of expressive data model understanding leads to poor schema design

6

Development teams unfamiliar with expressive data modeling often fail to apply important constraints like foreign keys, instead relying on familiar application-level patterns. This results in databases without essential integrity constraints.

architecturePostgreSQL

Rapid Tool and Framework Proliferation Causes Fatigue

6

Developers struggle to keep up with an overwhelming number of new and existing tools and frameworks (26% reported challenge in 2021). This creates decision paralysis, version fragmentation where teams become stuck on older versions, and costly migration efforts when attempting to upgrade.

ecosystem

Configuration drift detection and management

6

Infrastructure managed by CloudFormation can drift when modified through AWS Console, SDK, or CLI. Without proper tools, detecting and reconciling these changes is manual and error-prone.

deployCloudFormation

MVCC version copying creates excessive data duplication

6

PostgreSQL's MVCC implementation copies all columns of a tuple when any column is modified, regardless of which columns change. This causes significant data duplication and increased storage demands, especially for large tables with many columns. No practical workaround exists without major PostgreSQL rewrites.

performancePostgreSQL

Complex and error-prone autovacuum configuration

6

Configuring autovacuum correctly is challenging due to its complexity. Default global settings are inappropriate for large tables with millions/billions of tuples. If autovacuum invocations take too long or are blocked, dead tuples accumulate and statistics become stale, causing gradual query slowdown. Manual intervention is often required.

configPostgreSQL

Terraform Business Source License creates vendor lock-in and product redistribution uncertainty

6

Terraform's August 2023 BSL 1.1 license change creates legal uncertainty for organizations redistributing Terraform, embedding it in products, or offering IaC as a hosted service. The ambiguous definition of 'competitive' products triggers legal review and delays infrastructure platform roadmaps.

compatibilityTerraform

Replicas lack true MVCC support

6

PostgreSQL replicas apply WAL updates, making replicas identical copies of the master at any point in time. They don't have true replica MVCC support, preventing queries from reading different versions of data on replicas compared to the primary. This design poses significant constraints for distributed systems.

architecturePostgreSQL

Module version source attribute does not support variable interpolation

6

The source and version attributes in Terraform's module block reject variable interpolation, preventing dynamic module sourcing. This limitation breaks flexible, parameterized module management patterns and forces hardcoded or copy-paste module references.

configTerraformmodules

Terraform core development is slow with many stalled long-term bug fix PRs

6

Terraform core development moves slowly with minimal innovation, and many important long-standing PRs fixing critical bugs or adding key features languish for months without maintainer attention. In contrast, the AWS provider releases weekly but has poor core team responsiveness.

ecosystemTerraform

Resource sharing between teams requires paid Enterprise Terraform solutions

6

Terraform community edition lacks built-in mechanisms for cross-team resource sharing, forcing organizations without Terraform Enterprise to build custom state management solutions or invest in expensive enterprise licensing.

ecosystemTerraformTerraform Enterprise

Every organization develops different Terraform conventions and custom tooling

6

Terraform's flexibility allows each team to develop unique patterns: custom modules with different naming conventions, varying CI workflows (from simple apply to 8-step pipelines), conflicting use of Terragrunt, and different apply strategies. This fragmentation creates tribal knowledge and complicates onboarding.

dxTerraformTerragrunt