# Relational Databases

Published articles for Relational Databases.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Article: Implementing Durable Workflows on Postgres Without an External Orchestrator

DevFeed: [Article: Implementing Durable Workflows on Postgres Without an External Orchestrator](<https://devfeed.tech/articles/article-implementing-durable-workflows-on-postgres-without-an-external-orchestrator-17392.md>)

Original publisher: [Read original article](<https://www.infoq.com/articles/durable-workflows-postgres/>)

Author: Raman Varma

Published: 2026-09-14T11:00:00Z

Content type: article

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [incident](<https://devfeed.tech/topics/incident.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [AWS Step Functions](<https://devfeed.tech/topics/aws-step-functions.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-ml-data-engineering](<https://devfeed.tech/tags/ai-ml-data-engineering.md>), [architecture-design](<https://devfeed.tech/tags/architecture-design.md>), [article](<https://devfeed.tech/tags/article.md>), [automation](<https://devfeed.tech/tags/automation.md>), [aws-step-functions](<https://devfeed.tech/tags/aws-step-functions.md>), [database](<https://devfeed.tech/tags/database.md>), [durable-workflows-postgres](<https://devfeed.tech/tags/durable-workflows-postgres.md>), [incident-response](<https://devfeed.tech/tags/incident-response.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [ml-data-engineering](<https://devfeed.tech/tags/ml-data-engineering.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [queue](<https://devfeed.tech/tags/queue.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This article explains how to implement durable workflows on Postgres without an external orchestrator. It describes using row-level locking as a concurrent work queue, primary-key checkpoints for idempotency, and leases with a sweeper for crash recovery. Workflow state, sleeps, and human approvals can persist in the database and survive process restarts.

### Source excerpt

Postgres can serve as the durable state store and coordination layer for workflows, eliminating the need for an external orchestrator. SKIP LOCKED enables concurrent work processing, primary-key checkpoints enforce idempotency, and leases support crash recovery. Workflow sleeps and human approvals can also be persisted as database state and survive restarts. By Raman Varma

## Different Types of Database Management Systems

DevFeed: [Different Types of Database Management Systems](<https://devfeed.tech/articles/different-types-of-database-management-systems-17764.md>)

Original publisher: [Read original article](<https://talent500.com/blog/types-of-database-management-system/>)

Author: Sumit Malviya

Published: 2026-03-20T10:30:23Z

Content type: article

Language: en

Sources: [Backend Archives | Talent500 blog](<https://devfeed.tech/sources/backend-archives-talent500-blog.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Database](<https://devfeed.tech/topics/database.md>), [data](<https://devfeed.tech/topics/data.md>), [Software](<https://devfeed.tech/topics/software.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [sql-server](<https://devfeed.tech/topics/sql-server.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [backend](<https://devfeed.tech/tags/backend.md>), [backup](<https://devfeed.tech/tags/backup.md>), [big-data-and-dbms](<https://devfeed.tech/tags/big-data-and-dbms.md>), [choosing-the-right-dbms-for-your-needs](<https://devfeed.tech/tags/choosing-the-right-dbms-for-your-needs.md>), [cloud-based-dbms](<https://devfeed.tech/tags/cloud-based-dbms.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [comparison-of-dbms-types](<https://devfeed.tech/tags/comparison-of-dbms-types.md>), [conclusion](<https://devfeed.tech/tags/conclusion.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [definition-and-importance-of-dbms](<https://devfeed.tech/tags/definition-and-importance-of-dbms.md>), [different-types-of-database-management-systems](<https://devfeed.tech/tags/different-types-of-database-management-systems.md>), [emerging-types-in-database-management-systems](<https://devfeed.tech/tags/emerging-types-in-database-management-systems.md>), [evolution](<https://devfeed.tech/tags/evolution.md>), [evolution-of-database-management-systems](<https://devfeed.tech/tags/evolution-of-database-management-systems.md>), [examples](<https://devfeed.tech/tags/examples.md>), [hierarchical-database-management-systems](<https://devfeed.tech/tags/hierarchical-database-management-systems.md>), [industries](<https://devfeed.tech/tags/industries.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [management](<https://devfeed.tech/tags/management.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [network-database-management-systems](<https://devfeed.tech/tags/network-database-management-systems.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [nosql-databases](<https://devfeed.tech/tags/nosql-databases.md>), [object-oriented-database-management-systems-oodbms](<https://devfeed.tech/tags/object-oriented-database-management-systems-oodbms.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [relational-database-management-systems-rdbms](<https://devfeed.tech/tags/relational-database-management-systems-rdbms.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [systems](<https://devfeed.tech/tags/systems.md>), [types](<https://devfeed.tech/tags/types.md>), [types-of-database-management-systems](<https://devfeed.tech/tags/types-of-database-management-systems.md>)

### AI overview

This article explains what database management systems are, why they matter, how they support storage, queries, security, integrity, backup, and recovery, and how major DBMS categories have evolved. It also introduces examples including MySQL, Oracle Database, Microsoft SQL Server, and MongoDB.

### Source excerpt

Data is one of the most valuable assets for organizations in this AI-powered digital era. From banking systems and e-commerce [...] The post Different Types of Database Management Systems appeared first on Talent500 blog.

## Breaking the Loop: How we migrated our backup catalog for 250+ MySQL clusters to AWS

DevFeed: [Breaking the Loop: How we migrated our backup catalog for 250+ MySQL clusters to AWS](<https://devfeed.tech/articles/breaking-the-loop-how-we-migrated-our-backup-catalog-for-250-mysql-clusters-to-aws-23721.md>)

Original publisher: [Read original article](<https://medium.com/booking-com-development/breaking-the-loop-how-we-migrated-our-backup-catalog-for-250-mysql-clusters-to-aws-6f5a53a519b9?source=rss----1c36c35f9c76---4>)

Author: Ioannis Androulidakis

Published: 2026-02-19T14:19:52Z

Content type: article

Language: en

Sources: [Booking.com Development - Medium](<https://devfeed.tech/sources/booking-com-development-medium.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Amazon RDS](<https://devfeed.tech/topics/amazon-rds.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [backups](<https://devfeed.tech/topics/backups.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [on-prem](<https://devfeed.tech/topics/on-prem.md>)

Tags: [amazon-rds](<https://devfeed.tech/tags/amazon-rds.md>), [aws](<https://devfeed.tech/tags/aws.md>), [backup](<https://devfeed.tech/tags/backup.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-migration](<https://devfeed.tech/tags/cloud-migration.md>), [data-backup](<https://devfeed.tech/tags/data-backup.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [on-prem](<https://devfeed.tech/tags/on-prem.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [reliability-engineering](<https://devfeed.tech/tags/reliability-engineering.md>)

### AI overview

Booking.com's Database Engineering team describes migrating the backup catalog orchestrator's backend for more than 250 production MySQL clusters from a self-managed on-premises MySQL database to managed Amazon RDS for MySQL in AWS. The article discusses the migration's challenges, implemented solutions, and lessons learned.

### Source excerpt

This post was originally published internally on May 9, 2025 and has been reworked for a public audience. Authors: Ioannis Androulidakis, Mohammed Gaafar Intro The Database Engineering team at Booking.com is constantly looking for ways to improve database reliability and support scaling our business. In 2025 we completed a major milestone in our effort to modernize our infrastructure: we seamlessly migrated the backend of the orchestrator that schedules and manages the daily backups of 250+ production MySQL clusters. More specifically, we moved from a self-managed MySQL database running on premises to a managed Amazon RDS MySQL database running in the cloud. This blog post delves into the challenges we faced, the solutions we implemented, and some key lessons we learned along the way. We are moving to the cloud (gradually) Cloud adoption is a journey, not a switch. Over the past few years the adoption of AWS solutions at Booking.com has been growing rapidly across different business units, allowing teams to be more autonomous, run their databases in the cloud and solve known issues with their old on-premise setup. Like customer teams, we are running our own databases to power the core services that we offer and manage databases efficiently at scale. To name a few: automatic failover of writable primaries, auto-scaling of read-only replicas, service discovery, capacity planning, online schema changes, user access management, volume backups, etc. Traditionally, the Database Engineering team has been running databases on-premises. In the emerging era of cloud databases, we wanted to compare our in-house offerings with existing cloud databases and bridge the gap between the two. Knowing that we lacked deep, hands-on experience with the operational realities of running critical infrastructure on AWS, we saw this as a unique opportunity to learn more about cloud databases while also improving the reliability of our systems. Long story short, we decided to prioritize the m

## Branching as the New Standard for Relational Databases

DevFeed: [Branching as the New Standard for Relational Databases](<https://devfeed.tech/articles/branching-as-the-new-standard-for-relational-databases-5042.md>)

Original publisher: [Read original article](<https://neon.com/blog/branching-as-the-new-standard-for-relational-databases>)

Author: Carlota Soto

Published: 2025-07-10T16:51:48Z

Content type: opinion

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Development](<https://devfeed.tech/topics/development.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [databases](<https://devfeed.tech/tags/databases.md>), [development](<https://devfeed.tech/tags/development.md>), [infra](<https://devfeed.tech/tags/infra.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [product](<https://devfeed.tech/tags/product.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

The article argues that relational databases have lagged behind the software stack in iteration speed, automation, and developer experience. It presents database branching as a new standard for development workflows, especially because AI agents need databases that are fast to provision, scalable, integrated, cost-efficient, and easy to discard.

### Source excerpt

Over the last decade, nearly every part of the software development stack has evolved to support faster iteration, better automation, and less oversight. But one layer has stubbornly resisted this evolution - the relational database. The stack evolved, the database stayed behind...

## Migrating From PostgreSQL to MongoDB in a .NET EF Core Application

DevFeed: [Migrating From PostgreSQL to MongoDB in a .NET EF Core Application](<https://devfeed.tech/articles/migrating-from-postgresql-to-mongodb-in-a-net-ef-core-application-21837.md>)

Original publisher: [Read original article](<https://www.thepolyglotdeveloper.com/blog/2025/05/migrating-from-postgresql-to-mongodb-in-a-net-ef-core-application/>)

Author: Luce Carter

Published: 2025-05-01T12:00:00Z

Content type: tutorial

Language: en

Sources: [Nic Raboy](<https://devfeed.tech/sources/nic-raboy.md>)

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [.NET](<https://devfeed.tech/topics/net.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [azure](<https://devfeed.tech/tags/azure.md>), [dotnet](<https://devfeed.tech/tags/dotnet.md>), [efcore](<https://devfeed.tech/tags/efcore.md>), [genai](<https://devfeed.tech/tags/genai.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [net](<https://devfeed.tech/tags/net.md>), [orm](<https://devfeed.tech/tags/orm.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>)

### AI overview

This tutorial explains how to migrate a .NET application using PostgreSQL and Entity Framework Core to MongoDB with the MongoDB EF Core Provider. It also describes using Relational Migrator to transform relational data and model it for MongoDB collections.

### Source excerpt

For many reasons--including scalability, flexibility, and modernization--more and more development teams are looking to migrate away from PostgreSQL to MongoDB. In the past, these teams might have been ... The post Migrating From PostgreSQL to MongoDB in a .NET EF Core Application appeared first on DEV.

## Is your AWS RDS bill bloated?

DevFeed: [Is your AWS RDS bill bloated?](<https://devfeed.tech/articles/is-your-aws-rds-bill-bloated-5474.md>)

Original publisher: [Read original article](<https://neon.com/blog/is-your-aws-rds-bill-bloated>)

Author: Carlota Soto

Published: 2024-09-25T19:46:25Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Database](<https://devfeed.tech/topics/database.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [capacity](<https://devfeed.tech/tags/capacity.md>), [company](<https://devfeed.tech/tags/company.md>), [compute](<https://devfeed.tech/tags/compute.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [devops](<https://devfeed.tech/tags/devops.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>)

### AI overview

The article examines why AWS RDS database bills become unnecessarily high. It attributes the cost primarily to overprovisioned production databases and development or test environments that remain provisioned continuously despite limited usage. Survey results indicate that many teams use allocated compute capacity for only part of the day while maintaining multiple, relatively large non-production databases.

### Source excerpt

"We definitely were wasting money in unused compute. We could have used burstable instances, we could have shut down servers at night--but the pressures of the daily tasks never gave us the time to get to it" (Director of Sofware Engineering) We see this all the time: companies us...

## The crushing success of relational databases

DevFeed: [The crushing success of relational databases](<https://devfeed.tech/articles/the-crushing-success-of-relational-databases-5768.md>)

Original publisher: [Read original article](<https://neon.com/blog/relational-databases-success>)

Author: Andy Hattemer

Published: 2024-08-13T20:27:05Z

Content type: opinion

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Hadoop](<https://devfeed.tech/topics/hadoop.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [databases](<https://devfeed.tech/tags/databases.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [hadoop](<https://devfeed.tech/tags/hadoop.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

The article argues that relational databases remain dominant because they repeatedly absorb capabilities associated with competing data models and query systems. It presents document, vector, and graph functionality as features that can coexist within a relational database, and revisits arguments that the relational model will continue to outlast attempted replacements.

### Source excerpt

Every once in a while, a revolutionary product comes along and changes everything. And today, we're talking about three of these phenomenal products. The first one is a document store. The second is a vector database. And the third is a graph database. So, three things: document...

## SQL vs NoSQL Explained

DevFeed: [SQL vs NoSQL Explained](<https://devfeed.tech/articles/sql-vs-nosql-explained-17748.md>)

Original publisher: [Read original article](<https://blog.amigoscode.com/p/sql-vs-nosql-explained>)

Author: Nelson Djalo

Published: 2024-07-02T16:00:57Z

Content type: comparison

Language: en

Sources: [Amigoscode Newsletter](<https://devfeed.tech/sources/amigoscode-newsletter.md>)

Topics: [NoSQL](<https://devfeed.tech/topics/nosql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>)

Tags: [acid](<https://devfeed.tech/tags/acid.md>), [business-intelligence](<https://devfeed.tech/tags/business-intelligence.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [data-analysis](<https://devfeed.tech/tags/data-analysis.md>), [database](<https://devfeed.tech/tags/database.md>), [database-scalability](<https://devfeed.tech/tags/database-scalability.md>), [durability](<https://devfeed.tech/tags/durability.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [olap](<https://devfeed.tech/tags/olap.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [relational-database-management-systems-rdbms](<https://devfeed.tech/tags/relational-database-management-systems-rdbms.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [schema](<https://devfeed.tech/tags/schema.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This comparison explains the differences between SQL and NoSQL databases, including their characteristics, scalability models, and common use cases. It covers SQL database features such as structured schemas and ACID compliance, along with relational and OLAP database categories.

### Source excerpt

Choosing the Right Database for Your Needs

## Relational Databases on AWS: Comparing RDS and Aurora

DevFeed: [Relational Databases on AWS: Comparing RDS and Aurora](<https://devfeed.tech/articles/relational-databases-on-aws-comparing-rds-and-aurora-18015.md>)

Original publisher: [Read original article](<https://blog.guilleojeda.com/relational-databases-on-aws-comparing-rds-and-aurora>)

Author: Guillermo Ojeda

Published: 2024-04-23T23:40:12Z

Content type: comparison

Language: en

Sources: [Guille Ojeda](<https://devfeed.tech/sources/guille-ojeda.md>)

Topics: [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Amazon Aurora](<https://devfeed.tech/topics/amazon-aurora.md>), [Amazon RDS](<https://devfeed.tech/topics/amazon-rds.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>)

Tags: [amazon-aurora](<https://devfeed.tech/tags/amazon-aurora.md>), [amazon-rds](<https://devfeed.tech/tags/amazon-rds.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [aws](<https://devfeed.tech/tags/aws.md>), [backup](<https://devfeed.tech/tags/backup.md>), [compare](<https://devfeed.tech/tags/compare.md>), [databases](<https://devfeed.tech/tags/databases.md>), [high-availability](<https://devfeed.tech/tags/high-availability.md>), [performance](<https://devfeed.tech/tags/performance.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [scalability](<https://devfeed.tech/tags/scalability.md>)

### AI overview

This comparison examines Amazon RDS and Amazon Aurora, two managed relational database services in AWS. It describes RDS features including supported database engines, scaling options, storage choices, pricing factors, and automated backup and restore capabilities.

### Source excerpt

There are two managed relational database services in AWS: Amazon Relational Database Service (RDS) and Amazon Aurora. Both provide the benefits of a fully managed database solution, but they have distinct features and use cases. In this article, we'...

## Scaling Challenge Leaderboards for Millions of Athletes

DevFeed: [Scaling Challenge Leaderboards for Millions of Athletes](<https://devfeed.tech/articles/scaling-challenge-leaderboards-for-millions-of-athletes-26576.md>)

Original publisher: [Read original article](<https://medium.com/strava-engineering/scaling-challenge-leaderboards-for-millions-of-athletes-9ab09ef01381?source=rss----89d4108ce2a3---4>)

Author: Mike Kasberg

Published: 2024-01-18T17:01:41Z

Content type: article

Language: en

Sources: [Strava Engineering](<https://devfeed.tech/sources/strava-engineering.md>)

Topics: [Scalability](<https://devfeed.tech/topics/scalability.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [legacy](<https://devfeed.tech/topics/legacy.md>)

Tags: [implementation](<https://devfeed.tech/tags/implementation.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [programming](<https://devfeed.tech/tags/programming.md>), [redis](<https://devfeed.tech/tags/redis.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [sql](<https://devfeed.tech/tags/sql.md>), [system-design-concepts](<https://devfeed.tech/tags/system-design-concepts.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

A Strava Engineering blog post describes replacing a legacy challenge leaderboard system after rapid growth in monthly challenge participation caused recurring bottlenecks and scalability problems. The article introduces the scaling challenges of the old system, which was implemented primarily using Redis.

### Source excerpt

Strava challenges offer a fun way for athletes to compete against themselves and others! Back in 2020, our legacy challenge leaderboard system was running into bottlenecks and scalability problems on a regular basis, and we often found ourselves putting out fires to keep the system stable. In late 2020 and early 2021, I worked on a project to replace the old leaderboard system with a new one that could handle a much larger number of athletes competing in challenges. This blog post is about that project. I drafted most of this post when the project wrapped up in 2021, but didn't get it published before I went on paternity leave -- and then I forgot about it. I think the project was interesting and worth sharing, so I'm glad I finally remembered my draft (three years later 🫣) and found some time to put in the finishing touches and get it published! Enjoy! In January 2020, Strava's monthly 5K running challenge attracted more than half a million participants for the first time. This was a big milestone, doubling the participation from just a year earlier when we had only a little more than 250,000 participants in the January 2019 5K challenge. But we weren't done growing! Just 5 months later, our challenge participants doubled again and we broke 1 million participants in a monthly challenge for the first time with the May 2020 5K, where 1.2 million Strava athletes participated! In less than a year and a half, the number of athletes participating in Strava's monthly challenges had quadrupled. As you can imagine, the increase in challenge participation came with a significant increase in load on our systems. In particular, we were beginning to approach the limits of what our existing challenge leaderboard system could handle. If the number of challenge athletes participating in our monthly challenges were to double again, our challenge leaderboard system wouldn't handle it well. We needed to do something to improve the way our leaderboard system scaled with more challenge

## What is a distributed database and how do they work?

DevFeed: [What is a distributed database and how do they work?](<https://devfeed.tech/articles/what-is-a-distributed-database-and-how-do-they-work-23824.md>)

Original publisher: [Read original article](<https://cockroachlabs.com/blog/what-is-a-distributed-database>)

Author: Charlie Custer

Published: 2023-10-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Cockroach Labs](<https://devfeed.tech/sources/cockroach-labs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [scale](<https://devfeed.tech/tags/scale.md>)

### AI overview

This article explains what distributed databases are, how they run data across multiple interconnected computers or nodes, and why they are used. It describes their resilience during instance outages and their suitability for scaling cloud applications and mission-critical workloads.

### Source excerpt

The cloud is, by definition, a distributed system. Distributed application architecture is mainstream in the world of software -- you wouldn't build any other way. For more than a decade, though, the database has lagged behind. The architecture of traditional relational databases frequently conflicts with the architectural needs of modern cloud applications: horizontal scale, elasticity, and microservices.

## Upsert in SQL: What is an upsert, and when should you use one?

DevFeed: [Upsert in SQL: What is an upsert, and when should you use one?](<https://devfeed.tech/articles/upsert-in-sql-what-is-an-upsert-and-when-should-you-use-one-23817.md>)

Original publisher: [Read original article](<https://cockroachlabs.com/blog/sql-upsert>)

Author: Charlie Custer

Published: 2023-05-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Cockroach Labs](<https://devfeed.tech/sources/cockroach-labs.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [CockroachDB](<https://devfeed.tech/topics/cockroachdb.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [cockroachdb](<https://devfeed.tech/tags/cockroachdb.md>), [database](<https://devfeed.tech/tags/database.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This tutorial explains SQL upserts, an operation that updates an existing row when a specified value is present and inserts a new row when it is not. It discusses why the term may be absent from database documentation and introduces implementation approaches for CockroachDB, MySQL, and PostgreSQL.

### Source excerpt

Upserts are useful for anyone who works with a database to know, but the term "upsert" might not even appear in your DBMS's documentation! So what is an upsert, anyway? And why might it not be mentioned in your docs?

## DevOps at Findmypast: Postgres Database Upgrades

DevFeed: [DevOps at Findmypast: Postgres Database Upgrades](<https://devfeed.tech/articles/devops-at-findmypast-postgres-database-upgrades-19745.md>)

Original publisher: [Read original article](<https://tech.findmypast.com/postgres-database-upgrades/>)

Author: Robbie Hill

Published: 2022-11-17T11:30:00Z

Content type: article

Language: en

Sources: [Findmypast](<https://devfeed.tech/sources/findmypast.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Puppet](<https://devfeed.tech/topics/puppet.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [back-end](<https://devfeed.tech/tags/back-end.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [databases](<https://devfeed.tech/tags/databases.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops](<https://devfeed.tech/tags/devops.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [findmypast](<https://devfeed.tech/tags/findmypast.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-clusters](<https://devfeed.tech/tags/kubernetes-clusters.md>), [linux](<https://devfeed.tech/tags/linux.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [puppet](<https://devfeed.tech/tags/puppet.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [updates](<https://devfeed.tech/tags/updates.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [upgrades](<https://devfeed.tech/tags/upgrades.md>)

### AI overview

Findmypast describes its process for upgrading production and non-production Postgres databases. The article covers the database infrastructure, backup arrangements, Puppet-managed installations, version drift between environments, and the reasons for standardizing on the latest supported Postgres version.

### Source excerpt

Introduction Findmypast and its sister site; the British Newspaper Archive (BNA), are served by a web of microservices operating across multiple Kubernetes clusters. A number of our microservices rely upon a back-end database, and although we do operate other database technologies (MSSQL, MongoDB etc.), Postgres is our de-facto standard for relational databases. When the DevOps team first realised the need to upgrade all of the database nodes to the latest Postgres version, we operated a total of twelve production Postgres databases, each running on their own dedicated Ubuntu Linux virtual machine (VM). Running on standalone VMs allows for separation of concerns, and limits the 'blast radius' of issues and failures should they occur. All VMs are managed by our Hyper-V cluster, and backed up regularly by Veeam. In addition to this backup method we operate Barman, which takes a full backup of all production Postgres database hosts nightly, and continuously receives WAL (Write Ahead Log) updates. We operate a a similar number of staging / integration / utility Postgres databases. Unlike the production databases these are (mostly) co-located on a single host, given the reduced storage and performance requirements of these databases. Existing Processes We manage Postgres installations and configuration through Puppet, pinning the installed version of Postgres. After the initial deployment we were not actively upgrading the Postgres version running on the hosts. Upgrades of the production databases were instead only undertaken by the feature teams (those teams that manage our micro-services), or by us when requested by the feature teams. This meant that we had a variety of Postgres databases deployed to production, between versions 9 and 14 (the latest supported version at the time). It also meant that the Production Postgres versions differed from their respective staging / integration database. We knew this situation, as well as the approach to upgrades was bad practice

## pg\_jsonschema: JSON Schema support for Postgres

DevFeed: [pg\_jsonschema: JSON Schema support for Postgres](<https://devfeed.tech/articles/pg-jsonschema-json-schema-support-for-postgres-484.md>)

Original publisher: [Read original article](<https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation>)

Author: Oliver Rice

Published: 2022-08-19T07:00:00Z

Content type: article

Language: en

Sources: [Supabase Blog](<https://devfeed.tech/sources/supabase-blog.md>)

Topics: [JSON Schema](<https://devfeed.tech/topics/json-schema.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Supabase](<https://devfeed.tech/topics/supabase.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [json](<https://devfeed.tech/tags/json.md>), [json-schema](<https://devfeed.tech/tags/json-schema.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

Supabase introduces pg_jsonschema, a Postgres extension that adds JSON Schema validation for JSON data. The article explains how validating document-shaped webhook payloads can preserve flexibility while enforcing required structure and constraints.

### Source excerpt

Today we're releasing pg_jsonschema, a Postgres extension for JSON validation.

## What is SELECT FOR UPDATE in SQL (with examples)?

DevFeed: [What is SELECT FOR UPDATE in SQL (with examples)?](<https://devfeed.tech/articles/what-is-select-for-update-in-sql-with-examples-23815.md>)

Original publisher: [Read original article](<https://cockroachlabs.com/blog/select-for-update>)

Author: Charlie Custer

Published: 2022-06-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Cockroach Labs](<https://devfeed.tech/sources/cockroach-labs.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [CockroachDB](<https://devfeed.tech/topics/cockroachdb.md>), [consistency](<https://devfeed.tech/topics/consistency.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [cockroachdb](<https://devfeed.tech/tags/cockroachdb.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [databases](<https://devfeed.tech/tags/databases.md>), [latency](<https://devfeed.tech/tags/latency.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [performance](<https://devfeed.tech/tags/performance.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This tutorial explains SELECT FOR UPDATE in SQL, including how it locks rows during transactions, queues competing transactions, and can reduce retries and tail latency. It compares support and transaction behavior across MySQL, SQLite, and CockroachDB.

### Source excerpt

Relational databases are great for transactional workloads. But things can get messy when multiple transactions start trying to access the same data at the same time. Luckily, in many SQL databases there's a solution for that: SELECT FOR UPDATE.

## What is a Graph Database? | Why GraphQL is Not a Graph Database

DevFeed: [What is a Graph Database? | Why GraphQL is Not a Graph Database](<https://devfeed.tech/articles/what-is-a-graph-database-why-graphql-is-not-a-graph-database-23574.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/what-is-a-graph-database-why-graphql-is-not-a-graph-database>)

Author: Khalil Stemmler

Published: 2021-11-25T21:40:19Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [graph-database](<https://devfeed.tech/topics/graph-database.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Database](<https://devfeed.tech/topics/database.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [fraud-detection](<https://devfeed.tech/tags/fraud-detection.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graph-database](<https://devfeed.tech/tags/graph-database.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [management](<https://devfeed.tech/tags/management.md>), [network](<https://devfeed.tech/tags/network.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This educational article explains what graph databases are, how they model data with nodes, edges, and properties, when they are useful for relationship analysis, and how they differ from GraphQL and relational databases.

### Source excerpt

GraphQL is a query language and a server-side runtime (typically served over HTTP). However, you may have also heard of graph databases. What does GraphQL have to do with graph databases? Not so much. In this post, we'll clear up any confusion you may have about GraphQL and graph databases by learning about what graph databases are, the main ideas behind them, when they're most valuable, and how they differ from GraphQL. What is a graph database?

## Beyond LIMIT, Presto meets OFFSET and TIES

DevFeed: [Beyond LIMIT, Presto meets OFFSET and TIES](<https://devfeed.tech/articles/beyond-limit-presto-meets-offset-and-ties-8633.md>)

Original publisher: [Read original article](<https://trino.io/blog/2020/02/03/beyond-limit-presto-meets-offset-and-ties.html>)

Author: Piotr Findeisen, Starburst Data

Published: 2020-02-03T00:00:00Z

Content type: article

Language: en

Sources: [Trino Blog](<https://devfeed.tech/sources/trino-blog.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [big-data](<https://devfeed.tech/topics/big-data.md>)

Tags: [big-data](<https://devfeed.tech/tags/big-data.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

The article explains how Presto added ANSI SQL support for limiting query results, including skipping initial rows with OFFSET and retaining all rows tied with the final result using TIES. It contrasts the standard syntax with Presto's existing shorthand and discusses its usefulness for ad-hoc queries over big data sets.

### Source excerpt

Presto follows the SQL Standard faithfully. We extend it only when it is well justified, we strive to never break it and we always prefer the standard way of doing things. There was one situation where we stumbled, though. We had a non-standard way of limiting query results with LIMIT n without implementing the standard way of doing that first. We have corrected that, adding ANSI SQL way of limiting query results, discarding initial results and - a hidden gem - retaining initial results in case of ties.

## Amazon RDS Proxy makes it easier to use SQL in Serverless

DevFeed: [Amazon RDS Proxy makes it easier to use SQL in Serverless](<https://devfeed.tech/articles/amazon-rds-proxy-makes-it-easier-to-use-sql-in-serverless-14059.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/amazon-rds-proxy>)

Author: Alex DeBrie

Published: 2019-12-03T00:00:00Z

Content type: article

Language: en

Sources: [Serverless Blog](<https://devfeed.tech/sources/serverless-blog.md>)

Topics: [Amazon RDS](<https://devfeed.tech/topics/amazon-rds.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [amazon-rds](<https://devfeed.tech/tags/amazon-rds.md>), [applications](<https://devfeed.tech/tags/applications.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [news](<https://devfeed.tech/tags/news.md>), [post](<https://devfeed.tech/tags/post.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [re](<https://devfeed.tech/tags/re.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [release](<https://devfeed.tech/tags/release.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

Amazon RDS Proxy is presented as addressing a major objection to using relational databases in serverless applications by making SQL easier to use in serverless environments.

### Source excerpt

The release of the Amazon RDS Proxy at re:Invent removes one of the main objections to using relational databases in serverless applications. Read this post to understand why.

## Five Common Data Stores and When to Use Them

DevFeed: [Five Common Data Stores and When to Use Them](<https://devfeed.tech/articles/five-common-data-stores-and-when-to-use-them-1392.md>)

Original publisher: [Read original article](<https://shopify.engineering/five-common-data-stores-usage>)

Author: Toria Gibbs

Published: 2019-10-15T19:15:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [queue](<https://devfeed.tech/tags/queue.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [search](<https://devfeed.tech/tags/search.md>), [sql](<https://devfeed.tech/tags/sql.md>), [storage](<https://devfeed.tech/tags/storage.md>), [technical](<https://devfeed.tech/tags/technical.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This article introduces five common data stores--relational databases, NoSQL databases, key-value stores, full-text search engines, and message queues--and discusses their attributes and appropriate uses. It explains relational database concepts such as schemas, tables, primary keys, foreign keys, and SQL, and notes that Shopify uses MySQL as its relational database management system.

### Source excerpt

An important part of any technical design is choosing where to store your data. This post describes five common data stores and their attributes.

## Modeling Polymorphism in Django

DevFeed: [Modeling Polymorphism in Django](<https://devfeed.tech/articles/modeling-polymorphism-in-django-33917.md>)

Original publisher: [Read original article](<https://hakibenita.com/modeling-polymorphism-in-django>)

Author: Haki Benita

Published: 2019-01-01T22:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>), [Django](<https://devfeed.tech/topics/django.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [articles](<https://devfeed.tech/tags/articles.md>), [django](<https://devfeed.tech/tags/django.md>), [orm](<https://devfeed.tech/tags/orm.md>), [polymorphism](<https://devfeed.tech/tags/polymorphism.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [techniques](<https://devfeed.tech/tags/techniques.md>)

### AI overview

The article presents several techniques for modeling polymorphic objects in relational databases using Django's object-relational mapping (ORM).

### Source excerpt

Modeling polymorphism in relational databases is a challenging task. In this article, we present several modeling techniques to represent polymorphic objects in a relational database using the Django object-relational mapping (ORM).

## Auto incrementing IDs for MongoDB

DevFeed: [Auto incrementing IDs for MongoDB](<https://devfeed.tech/articles/auto-incrementing-ids-for-mongodb-26283.md>)

Original publisher: [Read original article](<https://masnun.com/auto-incrementing-ids-for-mongodb/>)

Author: masnun

Published: 2018-12-06T17:14:35Z

Content type: tutorial

Language: en

Sources: [Abu Ashraf Masnun](<https://devfeed.tech/sources/abu-ashraf-masnun.md>)

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [pymongo](<https://devfeed.tech/topics/pymongo.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [general](<https://devfeed.tech/tags/general.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [operator](<https://devfeed.tech/tags/operator.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [pymongo](<https://devfeed.tech/tags/pymongo.md>), [python](<https://devfeed.tech/tags/python.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>)

### AI overview

This tutorial explains how to implement sequential, auto-incrementing IDs in MongoDB using a separate collection that stores the last used numeric ID. It describes atomically incrementing the value before inserting a document and notes that the older find-and-modify approach is deprecated.

### Source excerpt

If you're familiar with relational databases like MySQL or PostgreSQL, you're probably also familiar with auto incrementing IDs. You select a primary key for a table and make it auto incrementing. Every row you insert afterwards, each of them gets a new ID, automatically incremented from the last one. We don't have to keep track [...] The post Auto incrementing IDs for MongoDB appeared first on Abu Ashraf Masnun.

## SQL Keys in Depth

DevFeed: [SQL Keys in Depth](<https://devfeed.tech/articles/sql-keys-in-depth-21479.md>)

Original publisher: [Read original article](<https://begriffs.com/posts/2018-01-01-sql-keys-in-depth.html>)

Published: 2018-01-01T00:00:00Z

Content type: article

Language: en

Sources: [Joe Nelson](<https://devfeed.tech/sources/joe-nelson.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [databases](<https://devfeed.tech/tags/databases.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

An in-depth discussion of keys in relational databases, including the debate over natural and artificial keys, the definition of a key as an irreducibly unique column or column combination, and examples involving card tables and database-enforced constraints.

### Source excerpt

2018-01-01 The internet is full of dogmatic commandments for choosing and using keys in relational databases. At times it verges on a holy war: should you use natural or artificial keys? Auto-incrementing integers, UUIDs? After wading through sixty-four articles, skimming sections in five books, and asking questions on IRC and StackOverflow I think I've put the pieces together and have a recommendation to harmonize the various camps.

## Deferrable SQL Constraints in Depth

DevFeed: [Deferrable SQL Constraints in Depth](<https://devfeed.tech/articles/deferrable-sql-constraints-in-depth-21477.md>)

Original publisher: [Read original article](<https://begriffs.com/posts/2017-08-27-deferrable-sql-constraints.html>)

Published: 2017-08-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Joe Nelson](<https://devfeed.tech/sources/joe-nelson.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [2017](<https://devfeed.tech/tags/2017.md>), [automatic](<https://devfeed.tech/tags/automatic.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [errors](<https://devfeed.tech/tags/errors.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [procedural](<https://devfeed.tech/tags/procedural.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [sql](<https://devfeed.tech/tags/sql.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

An in-depth explanation of deferrable SQL constraints, focusing on how PostgreSQL lets transactions postpone constraint checks while preserving data correctness.

### Source excerpt

2017-08-27 One strength of relational databases is their constant vigilance over data correctness. The user can declare constraints that their data must obey, and then leave it to the database to enforce the rules. This saves a lot of procedural application code and potential errors. Automatic constraint enforcement is a powerful feature, and should be leveraged whenever possible. However there are times when it is convenient - and even necessary - to temporarily defer enforcement.

## Rethinking the limits on relational databases

DevFeed: [Rethinking the limits on relational databases](<https://devfeed.tech/articles/rethinking-the-limits-on-relational-databases-41158.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2014/01/24/Rethinking-the-limits-on-relational-databases/>)

Author: Map

Published: 2014-01-24T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [migration](<https://devfeed.tech/topics/migration.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [couchdb](<https://devfeed.tech/topics/couchdb.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Django](<https://devfeed.tech/topics/django.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [couchdb](<https://devfeed.tech/tags/couchdb.md>), [databases](<https://devfeed.tech/tags/databases.md>), [django](<https://devfeed.tech/tags/django.md>), [json](<https://devfeed.tech/tags/json.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [orm](<https://devfeed.tech/tags/orm.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rails](<https://devfeed.tech/tags/rails.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>)

### AI overview

This opinion argues that useful ideas associated with schema-less databases could be applied to relational databases. It focuses on reducing migration friction through frameworks or ORMs and on supporting document-like JSON storage in relational systems.

### Source excerpt

Theres a lot of back and forth on NoSQL databases. The unfortunate part with all the back and forth and unclear definitions of NoSQL is that many of the valuable learnings are lost. This post isn't about the differences in NoSQL definitions, but rather some of the huge benefits that do exist in whats often grouped into the schema-less world that could easily be applied to the relational world. Forget migrations Perhaps the best thing about the idea of a schemaless database is that you can just push code and it works. Almost exactly five years ago Heroku shipped git push heroku master letting you simply push code from git and it just work. CouchDB and MongoDB have done similar for databases... you don't have to run CREATE TABLE or ALTER TABLE migrations before working with your database. There's something wonderful about just building and shipping your application without worrying about migrations. This is often viewed as a limitation of relational databases. Yet it doesn't really have to. You see even in schema-less database the relationships are still there, its just you're managing it at the application level. There's no reason higher level frameworks or ORMs couldn't handle the migration process. As it is today the process of adding a column to a relational database is quite straightforward in a sense where it doesn't introduce downtime and is capable of letting the developer still move quickly its just not automatically baked in. # Assuming a column thats referenced doesn't exist # Automatically execute relevant bits in your ORM # This isn't code meant for you to run ALTER TABLE foo ADD COLUMN bar varchar(255); # This is near instant # Set your default value in your ORM UPDATE TABLE foo SET bar = 'DEFAULT VALUE' WHERE bar IS NULL; ALTER TABLE foo ALTER COLUMN bar NOT NULL; Having Rails/Django/(Framework of your choice) automatically notice the need for a column to exist and make appropriate modifications you could work with it the same way you would managing a doc

[Next page](<https://devfeed.tech/tags/relational-databases.md?cursor=WyIyMDE0LTAxLTI0VDIwOjU1OjU2KzAwOjAwIiwgIjQ0N2Y2M2ZmLTY1ZmYtNGQxZi04M2JjLTQ2MzQ3OTFjM2QxNCJd>)