# rdbms

Published articles for rdbms.

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

## Wix Migrated Its MySQL EC2 Fleet from Intel CPUs to Graviton

DevFeed: [Wix Migrated Its MySQL EC2 Fleet from Intel CPUs to Graviton](<https://devfeed.tech/articles/1-000-servers-160-clusters-30-days-zero-downtime-migrating-wix-s-mysql-fleet-to-graviton-22627.md>)

Original publisher: [Read original article](<https://www.wix.engineering/post/1-000-servers-160-clusters-30-days-zero-downtime-migrating-wix-s-mysql-fleet-to-graviton>)

Author: Wix Engineering

Published: 2026-03-23T11:27:39Z

Content type: article

Language: en

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

Topics: [Graviton](<https://devfeed.tech/topics/graviton.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [awx](<https://devfeed.tech/topics/awx.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Server](<https://devfeed.tech/topics/server.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [ansible](<https://devfeed.tech/tags/ansible.md>), [awx](<https://devfeed.tech/tags/awx.md>), [devops](<https://devfeed.tech/tags/devops.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [graviton](<https://devfeed.tech/tags/graviton.md>), [infra](<https://devfeed.tech/tags/infra.md>), [intel](<https://devfeed.tech/tags/intel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [replication](<https://devfeed.tech/tags/replication.md>)

### AI overview

Wix's DB Infra team migrated more than 1,000 MySQL EC2 servers across over 160 clusters from Intel-based CPUs to Graviton in one month, ahead of the original three-month timeline. The project also enabled a move to Amazon Linux 2023 and away from CentOS 7.0, using AWX workflows and Wix's Dev Portal to automate the process while accounting for replication and cluster reliability concerns.

### Source excerpt

Last January, the DB Infra team at Wix embarked on a strategic and very important mission: Migrating all of our MySQL EC2 servers from Intel based CPUs to the new shiny Graviton ones. Not only will this allow us to work on better CPUs, saving us money and improving our databases, we'll be able to move to Amazon Linux 2023 OS and move from the EOL CentOS 7.0. That sounds simple enough, until you realize that we're dealing with over 1K servers spread over 160+ MySQL clusters. The initial...

## Difference Between DBMS and RDBMS

DevFeed: [Difference Between DBMS and RDBMS](<https://devfeed.tech/articles/difference-between-dbms-and-rdbms-17754.md>)

Original publisher: [Read original article](<https://talent500.com/blog/difference-between-dbms-and-rdbms/>)

Author: Sumit Malviya

Published: 2026-03-13T07:49:01Z

Content type: tutorial

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 Management](<https://devfeed.tech/topics/data-management.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [advantages-of-rdbms-over-dbms](<https://devfeed.tech/tags/advantages-of-rdbms-over-dbms.md>), [backend](<https://devfeed.tech/tags/backend.md>), [conclusion-choosing-between-dbms-and-rdbms](<https://devfeed.tech/tags/conclusion-choosing-between-dbms-and-rdbms.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [core-concepts-of-rdbms](<https://devfeed.tech/tags/core-concepts-of-rdbms.md>), [data-management](<https://devfeed.tech/tags/data-management.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [dbms-vs-rdbms-key-differences](<https://devfeed.tech/tags/dbms-vs-rdbms-key-differences.md>), [difference-between-rdbms-and-dbms](<https://devfeed.tech/tags/difference-between-rdbms-and-dbms.md>), [examples-of-dbms](<https://devfeed.tech/tags/examples-of-dbms.md>), [future-trends-in-database-management](<https://devfeed.tech/tags/future-trends-in-database-management.md>), [key-features-of-dbms](<https://devfeed.tech/tags/key-features-of-dbms.md>), [limitations-of-dbms-and-rdbms](<https://devfeed.tech/tags/limitations-of-dbms-and-rdbms.md>), [popular-rdbms-examples](<https://devfeed.tech/tags/popular-rdbms-examples.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [security](<https://devfeed.tech/tags/security.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [summary-table-dbms-vs-rdbms](<https://devfeed.tech/tags/summary-table-dbms-vs-rdbms.md>), [understanding-rdbms](<https://devfeed.tech/tags/understanding-rdbms.md>), [what-is-dbms](<https://devfeed.tech/tags/what-is-dbms.md>), [when-to-use-dbms-vs-rdbms](<https://devfeed.tech/tags/when-to-use-dbms-vs-rdbms.md>)

### AI overview

This tutorial explains the differences between database management systems (DBMS) and relational database management systems (RDBMS), including how DBMS software stores, retrieves, and manages data and how it supports integrity, security, access control, concurrency, and transactions.

### Source excerpt

The data-driven world demands more than just managing information efficiently. It is critical for businesses, institutions, and applications that they [...] The post Difference Between DBMS and RDBMS appeared first on Talent500 blog.

## Why Kafka and Postgres Serve Different Purposes

DevFeed: [Why Kafka and Postgres Serve Different Purposes](<https://devfeed.tech/articles/you-don-t-need-kafka-just-use-postgres-considered-harmful-18892.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/you-dont-need-kafka-just-use-postgres-considered-harmful/>)

Published: 2025-11-03T17:02:00Z

Content type: opinion

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [argument](<https://devfeed.tech/tags/argument.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [queue](<https://devfeed.tech/tags/queue.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>)

### AI overview

The article argues that Postgres and Kafka serve different purposes and that choosing between them should depend on the problem being solved. It challenges advice to use Postgres instead of Kafka, noting that Kafka is not primarily a queue and that building a robust queue on Postgres can introduce operational difficulties.

### Source excerpt

Looking to make it to the front page of HackerNews? Then writing a post arguing that "Postgres is enough", or why "you don't need Kafka at your scale" is a pretty failsafe way of achieving exactly that. No matter how often it has been discussed before, this topic is always doing well. And sure, what's not to love about that? I mean, it has it all: Postgres, everybody's most favorite RDBMS--check! Keeping things lean and easy--sure, count me in! A somewhat spicy take--bring it on!

## Oracle zero-day vulnerability for sale

DevFeed: [Oracle zero-day vulnerability for sale](<https://devfeed.tech/articles/oracle-zero-day-vulnerability-for-sale-20573.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/oracle/>)

Published: 2025-09-17T22:00:00Z

Content type: opinion

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>), [DDoS](<https://devfeed.tech/topics/ddos.md>)

Tags: [exploit](<https://devfeed.tech/tags/exploit.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

The author describes a zero-day vulnerability in Oracle RDBMS that can make a remote database hang or freeze, characterizing it as a denial-of-service issue without access to remote data. The author says they are considering selling a proof of concept or exploit.

### Source excerpt

Oracle zero-day vulnerability for sale

## Scaling Nextdoor's Datastores: Part 5

DevFeed: [Scaling Nextdoor's Datastores: Part 5](<https://devfeed.tech/articles/scaling-nextdoor-s-datastores-part-5-20344.md>)

Original publisher: [Read original article](<https://engblog.nextdoor.com/scaling-nextdoors-datastores-part-5-5221da60f374?source=rss----5e54f11cdfdf---4>)

Author: Slava Markeyev

Published: 2025-03-19T15:09:15Z

Content type: article

Language: en

Sources: [Nextdoor](<https://devfeed.tech/sources/nextdoor.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [consistency](<https://devfeed.tech/topics/consistency.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [cache-invalidation](<https://devfeed.tech/tags/cache-invalidation.md>), [caching-strategies](<https://devfeed.tech/tags/caching-strategies.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [database-consistency](<https://devfeed.tech/tags/database-consistency.md>), [database-scalability](<https://devfeed.tech/tags/database-scalability.md>), [databases](<https://devfeed.tech/tags/databases.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [reconciliation](<https://devfeed.tech/tags/reconciliation.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [stream](<https://devfeed.tech/tags/stream.md>), [usability](<https://devfeed.tech/tags/usability.md>)

### AI overview

The final installment of Nextdoor's datastore-scaling series explains how cache consistency can fail when a database writer misses its cache update. It presents a Change Data Capture stream and a reconciler that uses database changes to repair cache inconsistencies.

### Source excerpt

In this final installment of the Scaling Nextdoor's Datastores blog series, we detail how the Core-Services team at Nextdoor solved cache consistency challenges as part of a holistic approach to improve our database and cache scalability and usability. In Part 4: Keeping the cache consistent, we highlighted a class of consistency issues arising from racing cache writes and introduced an approach for forward cache versioning as a mechanism to avoid inconsistencies. The cache is able to decide which write to persist and which to reject because it is aware of the version of data it currently has. However, this is only a partial solution because it assumes writers will always succeed in communicating with the cache in a timely manner, if at all. Missed Writes Let's consider the scenario where Writers A and B both performed an update to the same row in the database and have not yet updated the cache. Writer A holds Version 1 and Writer B holds Version 2. What happens if Writer B with Value 2 fails to talk with the cache? Writer B fails to write to the cache. In this case the result is that the cache becomes inconsistent and we can't rely on the writers to provide that consistency. A process must exist outside of this interaction to fix-up the cache when Version 2 is written to the database but fails to be written to the cache. Change Data Stream To solve this problem we tap into a common feature provided by most modern databases, a Change Data Capture (CDC) Stream. A CDC Stream is a mechanism to subscribe to row level changes in a database. The change stream contains a row's previous column values along with the new values. Here's a visual example of the change stream when the last_name field gets updated in the database. For visual clarity the changed values have been underlined in red. Reconciler Since the database is the source of truth and the CDC Stream emits all changes, a consumer of this stream can clean up any consistency issues in the cache. In our system we ca

## Scaling Nextdoor's Datastores: Part 2

DevFeed: [Scaling Nextdoor's Datastores: Part 2](<https://devfeed.tech/articles/scaling-nextdoor-s-datastores-part-2-20341.md>)

Original publisher: [Read original article](<https://engblog.nextdoor.com/scaling-nextdoors-datastores-part-2-513922e4b4b1?source=rss----5e54f11cdfdf---4>)

Author: Tushar Singla

Published: 2025-03-19T15:08:32Z

Content type: article

Language: en

Sources: [Nextdoor](<https://devfeed.tech/sources/nextdoor.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Django](<https://devfeed.tech/topics/django.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [consistency](<https://devfeed.tech/topics/consistency.md>), [race-condition](<https://devfeed.tech/topics/race-condition.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [consistency](<https://devfeed.tech/tags/consistency.md>), [database](<https://devfeed.tech/tags/database.md>), [database-scalability](<https://devfeed.tech/tags/database-scalability.md>), [django](<https://devfeed.tech/tags/django.md>), [orm](<https://devfeed.tech/tags/orm.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [read-replica](<https://devfeed.tech/tags/read-replica.md>), [replication](<https://devfeed.tech/tags/replication.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

The second installment of Nextdoor's datastore-scaling series examines the consistency problems caused by database read replicas. It describes how routing decisions became obscured by Django ORM abstractions, leading to read-after-write races, and explains how transactions were used as a workaround with negative effects on database load.

### Source excerpt

In the second installment of Nextdoor's "Scaling Nextdoor's Datastores" blog series, the Core-Services team discusses challenges faced after implementing database read replicas. Adding read replicas to an existing database is a very common pattern as applications or products evolve to handle increased demand. Typically, the implementation details are hand waved and it's assumed that this strategy will work. However, that is rarely the case, and we'll dive into some more of the intricacies around the implementation. Initial Attempt When replicas were first introduced in the Nextdoor stack, we gave the product engineers latitude to choose when they wanted to have their query routed to a read replica or to the primary. This was done by leveraging the existing routing mechanism in our ORM, Django. This seemed like the right idea at the time because the product engineers had the most context around consistency requirements within their changes and load characteristics of their product feature. Therefore, they would have the best ability to judge which node to send their query to. However, as our business logic evolved and became more feature-rich, product engineers began to add abstraction layers to help abstract complex operations away from business logic. In this design evolution there is a high frequency read, followed by a low frequency conditional write, followed by a read. The read performed after the write should be routed to the primary, but that may get buried in abstractions and this requirement regressed. The explicit routing decisions engineers made became buried and subsequently created a serious problem for users of these abstractions. If one abstraction method was performing a write and another a read, they could not safely be used together due to read-after-write consistency issues. Due to replication lag between the primary and replica databases, a race condition arises when the application attempts to read data from a replica after performing a write. W

## Scaling Nextdoor's Datastores: Part 1

DevFeed: [Scaling Nextdoor's Datastores: Part 1](<https://devfeed.tech/articles/scaling-nextdoor-s-datastores-part-1-20340.md>)

Original publisher: [Read original article](<https://engblog.nextdoor.com/scaling-nextdoors-datastores-part-1-234d0cf67665?source=rss----5e54f11cdfdf---4>)

Author: Slava Markeyev

Published: 2025-03-19T15:08:13Z

Content type: article

Language: en

Sources: [Nextdoor](<https://devfeed.tech/sources/nextdoor.md>)

Topics: [Scalability](<https://devfeed.tech/topics/scalability.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Django](<https://devfeed.tech/topics/django.md>), [Python](<https://devfeed.tech/topics/python.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [caching](<https://devfeed.tech/tags/caching.md>), [database-consistency](<https://devfeed.tech/tags/database-consistency.md>), [database-scalability](<https://devfeed.tech/tags/database-scalability.md>), [databases](<https://devfeed.tech/tags/databases.md>), [development](<https://devfeed.tech/tags/development.md>), [django](<https://devfeed.tech/tags/django.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [python](<https://devfeed.tech/tags/python.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [scalability](<https://devfeed.tech/tags/scalability.md>)

### AI overview

This introductory post in a Nextdoor blog series examines scalability challenges involving database load and cache consistency. It reviews common industry solutions, their caveats, and the difficulty of moving from entrenched relational data models to NoSQL or distributed SQL datastores.

### Source excerpt

At Nextdoor, the Core-Services team is responsible for the primary set of databases and caches that power the Nextdoor platform. This blog series explores our 2024 initiatives to enhance the scalability of this critical infrastructure. When we sat down at the whiteboard we sought to address two related problems: How can we reduce load on our primary database(s) and better utilize database read replicas? How can we improve our cache consistency? In this post we'll provide a primer on the common industry-wide solutions we've previously employed along with discussing their caveats and pitfalls. In subsequent posts we'll dive into the technical details of the components of our solution and how they fit together. Table of Contents Background primer (this post) Decreasing database load with dynamic routing Appropriately serializing data for caching Keeping the cache consistent A time-bounded, eventually-consistent cache Background Nextdoor's backend, built using the Python-based Django web framework, powers the core product experience for neighbors, government agencies, and local businesses. The power of Django and similar frameworks (Rails, Spring, etc) is that they allow development teams to focus on implementing business logic rather than getting caught up in the details like learning and writing SQL. The Object Relational Mapping, ORMs, included in these frameworks provide a lever that allows developers to define data models and relationships between them in the application's language without ever needing to worry about SQL. As some readers are all too aware, relational data modeling comes at a cost. Without careful data modeling, performant access to relational data largely depends on that data residing on monolithic databases. NoSQL or distributed SQL datastores are often advertised as solutions to the scalability challenges of relational databases like PostgreSQL. However, many companies face significant obstacles in transitioning to these modern datastores. Their

## 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

## An Efficient Way to Check for Existence of Multiple Values in SQL

DevFeed: [An Efficient Way to Check for Existence of Multiple Values in SQL](<https://devfeed.tech/articles/an-efficient-way-to-check-for-existence-of-multiple-values-in-sql-28931.md>)

Original publisher: [Read original article](<https://blog.jooq.org/an-efficient-way-to-check-for-existence-of-multiple-values-in-sql/>)

Author: lukaseder

Published: 2024-02-16T14:16:45Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [compare](<https://devfeed.tech/tags/compare.md>), [count](<https://devfeed.tech/tags/count.md>), [database](<https://devfeed.tech/tags/database.md>), [derived-table](<https://devfeed.tech/tags/derived-table.md>), [execution](<https://devfeed.tech/tags/execution.md>), [exists](<https://devfeed.tech/tags/exists.md>), [join](<https://devfeed.tech/tags/join.md>), [limit](<https://devfeed.tech/tags/limit.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [oracle-23c](<https://devfeed.tech/tags/oracle-23c.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-performance](<https://devfeed.tech/tags/sql-performance.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [sql-syntax](<https://devfeed.tech/tags/sql-syntax.md>), [top](<https://devfeed.tech/tags/top.md>)

### AI overview

This article explains how to check whether multiple matching rows exist in SQL. It recommends limiting rows in a derived table before counting them, then compares execution plans and benchmark results for PostgreSQL 15 and Oracle 23c.

### Source excerpt

In a previous blog post, we've advertised the use of SQL EXISTS rather than COUNT(*) to check for existence of a value in SQL. I.e. to check if in the Sakila database, actors called WAHLBERG have played in any films, instead of: Do this: (Depending on your dialect you may require a FROM DUAL clause, ... Continue reading An Efficient Way to Check for Existence of Multiple Values in SQL ->

## A Guide to Logical Replication and CDC in PostgreSQL with Airbyte

DevFeed: [A Guide to Logical Replication and CDC in PostgreSQL with Airbyte](<https://devfeed.tech/articles/a-guide-to-logical-replication-and-cdc-in-postgresql-with-airbyte-4933.md>)

Original publisher: [Read original article](<https://neon.com/blog/a-guide-to-logical-replication-and-cdc-in-postgresql-with-airbyte>)

Author: Jacob Prall

Published: 2024-01-11T16:04:46Z

Content type: article

Language: en

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

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Database](<https://devfeed.tech/topics/database.md>), [Data analysis](<https://devfeed.tech/topics/data-analysis.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-analysis](<https://devfeed.tech/tags/data-analysis.md>), [database](<https://devfeed.tech/tags/database.md>), [guide](<https://devfeed.tech/tags/guide.md>), [high-availability](<https://devfeed.tech/tags/high-availability.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [replication](<https://devfeed.tech/tags/replication.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This guide explains logical replication and change data capture in PostgreSQL, including why data may need to be replicated between PostgreSQL servers or moved to systems suited for analysis and activation. It introduces database replication concepts, compares replication approaches, and describes PostgreSQL's Write-Ahead Log and its roles in crash recovery, point-in-time recovery, and concurrent transactions.

### Source excerpt

PostgreSQL is a database that needs no introduction. Started as an open-source project out of UC Berkeley, it has evolved through decades of careful stewardship to become one of the world's most relied on and beloved relational database management systems (RDBMS). There will inev...

## Workaround for MySQL's "can't specify target table for update in FROM clause" Error

DevFeed: [Workaround for MySQL's "can't specify target table for update in FROM clause" Error](<https://devfeed.tech/articles/workaround-for-mysql-s-can-t-specify-target-table-for-update-in-from-clause-error-28975.md>)

Original publisher: [Read original article](<https://blog.jooq.org/workaround-for-mysqls-cant-specify-target-table-for-update-in-from-clause-error/>)

Author: lukaseder

Published: 2023-12-20T14:20:29Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [MySQL](<https://devfeed.tech/topics/mysql.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [bug](<https://devfeed.tech/topics/bug.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [for-update](<https://devfeed.tech/tags/for-update.md>), [from-clause](<https://devfeed.tech/tags/from-clause.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [mariadb](<https://devfeed.tech/tags/mariadb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [table](<https://devfeed.tech/tags/table.md>), [target-table](<https://devfeed.tech/tags/target-table.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

The article explains MySQL error 1093, which occurs when an UPDATE statement references its target table in a FROM clause. It presents a jOOQ transformation as a workaround and notes that similar workarounds appear in the MySQL documentation.

### Source excerpt

In MySQL, you cannot do this: The UPDATE statement will raise an error as follows: SQL Error [1093] [HY000]: You can't specify target table 't' for update in FROM clause People have considered this to be a bug in MySQL for ages, as most other RDBMS can do this without any issues, including MySQL clones: ... Continue reading Workaround for MySQL's "can't specify target table for update in FROM clause" Error ->

## JDBC Connection URLs of the Most Popular RDBMS

DevFeed: [JDBC Connection URLs of the Most Popular RDBMS](<https://devfeed.tech/articles/jdbc-connection-urls-of-the-most-popular-rdbms-28949.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jdbc-connection-urls-of-the-most-popular-rdbms/>)

Author: lukaseder

Published: 2023-12-01T11:12:59Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [connection-url](<https://devfeed.tech/tags/connection-url.md>), [driver](<https://devfeed.tech/tags/driver.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [popular](<https://devfeed.tech/tags/popular.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A reference for finding JDBC connection URLs and driver names for popular relational database management systems.

### Source excerpt

Need to connect to your RDBMS with JDBC and don't have the JDBC connection URL or driver name at hand? No problem, just look up your RDBMS below:

## 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?

## How to use jOOQ's Converters with UNION Operations

DevFeed: [How to use jOOQ's Converters with UNION Operations](<https://devfeed.tech/articles/how-to-use-jooq-s-converters-with-union-operations-28947.md>)

Original publisher: [Read original article](<https://blog.jooq.org/how-to-use-jooqs-converters-with-union-operations/>)

Author: lukaseder

Published: 2023-03-02T11:18:17Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

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

Tags: [ad-hoc-converter](<https://devfeed.tech/tags/ad-hoc-converter.md>), [converter](<https://devfeed.tech/tags/converter.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [multiset](<https://devfeed.tech/tags/multiset.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [union](<https://devfeed.tech/tags/union.md>)

### AI overview

This tutorial explains how jOOQ ad-hoc converters behave with UNION operations. Because conversion occurs on the client after JDBC retrieval, it does not affect server-side UNION processing, and jOOQ applies the result-fetching row type from the first subquery. The article recommends applying client-side conversions consistently across subqueries or moving the conversion to the server when appropriate.

### Source excerpt

jOOQ 3.15 introduced the concept of an ad-hoc converter, a converter that is applied "ad-hoc" to a single query. It uses the same underlying mechanisms as any ordinary Converter that is attached to generated code for use in every query. An example of such an ad-hoc converter is this: While there are other ways to ... Continue reading How to use jOOQ's Converters with UNION Operations ->

## Database Testing at Yugabyte

DevFeed: [Database Testing at Yugabyte](<https://devfeed.tech/articles/database-testing-at-yugabyte-30810.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/database-testing-at-yugabyte/>)

Published: 2023-01-13T23:00:00Z

Content type: article

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Database](<https://devfeed.tech/topics/database.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [database](<https://devfeed.tech/tags/database.md>), [qa](<https://devfeed.tech/tags/qa.md>), [quality](<https://devfeed.tech/tags/quality.md>), [quality-assurance](<https://devfeed.tech/tags/quality-assurance.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article introduces YugabyteDB's database testing philosophy, approaches, and implementations. It describes YugabyteDB as a cloud-native database designed for continuous availability, horizontal scalability, and strong RDBMS features, and directs readers to the YugabyteDB blog for the full post.

### Source excerpt

YugabyteDB is a cloud-native database for business-critical enterprise applications. It is designed to provide continuous availability as well as horizontal scalability, while retaining a strong set of RDBMS features. This objective creates a strong quality incentive for us in the Yugabyte Quality Assurance (QA) team. As a member of this team, I am giving an overview of the testing philosophy, approaches, and implementations for YugabyteDB. Read the rest of the blog post over on the YugabyteDB blog.

## When to Use jOOQ and When to Use Native SQL

DevFeed: [When to Use jOOQ and When to Use Native SQL](<https://devfeed.tech/articles/when-to-use-jooq-and-when-to-use-native-sql-28972.md>)

Original publisher: [Read original article](<https://blog.jooq.org/when-to-use-jooq-and-when-to-use-native-sql/>)

Author: lukaseder

Published: 2022-12-08T13:53:02Z

Content type: comparison

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Testcontainers](<https://devfeed.tech/topics/testcontainers.md>)

Tags: [cons](<https://devfeed.tech/tags/cons.md>), [examples](<https://devfeed.tech/tags/examples.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jdbctemplate](<https://devfeed.tech/tags/jdbctemplate.md>), [jdbi](<https://devfeed.tech/tags/jdbi.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [native-sql](<https://devfeed.tech/tags/native-sql.md>), [plain-jdbc](<https://devfeed.tech/tags/plain-jdbc.md>), [plain-sql-templating](<https://devfeed.tech/tags/plain-sql-templating.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-json](<https://devfeed.tech/tags/sql-json.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testcontainers](<https://devfeed.tech/tags/testcontainers.md>)

### AI overview

This comparison explains when to use the jOOQ API and when to use native SQL for complex queries. It describes jOOQ's advantages for dynamic SQL, multiple database dialects, type safety, data mapping, stored procedures, security, exports, and diagnostics, while noting usability drawbacks for large static queries with many CTEs or derived tables.

### Source excerpt

A frequently encountered doubt people have when using jOOQ is to decide when a "complex" query should be written using jOOQ API vs. when it should be implemented using native SQL. The jOOQ manual is full of side by side examples of the same query, e.g. Using jOOQ: Using native SQL: In the native SQL ... Continue reading When to Use jOOQ and When to Use Native SQL ->

## The Best Way to Call Stored Procedures from Java: With jOOQ

DevFeed: [The Best Way to Call Stored Procedures from Java: With jOOQ](<https://devfeed.tech/articles/the-best-way-to-call-stored-procedures-from-java-with-jooq-28961.md>)

Original publisher: [Read original article](<https://blog.jooq.org/the-best-way-to-call-stored-procedures-from-java-with-jooq/>)

Author: lukaseder

Published: 2022-07-28T13:11:59Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Code generation](<https://devfeed.tech/topics/code-generation.md>), [Java](<https://devfeed.tech/topics/java.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [code-generation](<https://devfeed.tech/tags/code-generation.md>), [code-generator](<https://devfeed.tech/tags/code-generator.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [java](<https://devfeed.tech/tags/java.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jdbc-drivers](<https://devfeed.tech/tags/jdbc-drivers.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [pl-pgsql](<https://devfeed.tech/tags/pl-pgsql.md>), [pl-sql](<https://devfeed.tech/tags/pl-sql.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [schema](<https://devfeed.tech/tags/schema.md>), [sql](<https://devfeed.tech/tags/sql.md>), [stored-functions](<https://devfeed.tech/tags/stored-functions.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [t-sql](<https://devfeed.tech/tags/t-sql.md>), [udts](<https://devfeed.tech/tags/udts.md>)

### AI overview

This tutorial explains how to call stored procedures from Java using jOOQ-generated code. It contrasts JDBC calls with generated procedure stubs and convenience methods, covering parameter handling, database types, and support for procedures, functions, packages, and UDTs.

### Source excerpt

jOOQ is mainly known for its powerful type safe, embedded, dynamic SQL capabilities that are made available through code generation. However, a secondary use case of code generation is to use it for stored procedures (possibly exclusively for stored procedures). Stored procedures are powerful ways of moving complex data processing logic to the server. This ... Continue reading The Best Way to Call Stored Procedures from Java: With jOOQ ->

## Intro to SQL for the New Grad Developer

DevFeed: [Intro to SQL for the New Grad Developer](<https://devfeed.tech/articles/intro-to-sql-for-the-new-grad-developer-21816.md>)

Original publisher: [Read original article](<https://www.thepolyglotdeveloper.com/blog/2022/06/intro-sql-new-grad-developer/>)

Author: Brandon Raboy

Published: 2022-06-08T13:00:00Z

Content type: tutorial

Language: en

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

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [sql-server](<https://devfeed.tech/topics/sql-server.md>)

Tags: [databases](<https://devfeed.tech/tags/databases.md>), [developer](<https://devfeed.tech/tags/developer.md>), [guide](<https://devfeed.tech/tags/guide.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

A beginner-oriented guide to SQL for new graduate developers. It explains SQL's role in accessing and manipulating databases, surveys MySQL, PostgreSQL, Oracle, and SQL Server, and introduces syntax differences, EXPLAIN, query runtime, and example problems.

### Source excerpt

Ever since studying and working with databases 6 months ago, I've become fascinated with SQL and its relatively simple syntax. As a guide to the reader, I've gathered the essential criteria that emplo... The post Intro to SQL for the New Grad Developer appeared first on The Polyglot Developer.

## Changing SELECT .. FROM Into FROM .. SELECT Does Not "Fix" SQL

DevFeed: [Changing SELECT .. FROM Into FROM .. SELECT Does Not "Fix" SQL](<https://devfeed.tech/articles/changing-select-from-into-from-select-does-not-fix-sql-28934.md>)

Original publisher: [Read original article](<https://blog.jooq.org/changing-select-from-into-from-select-does-not-fix-sql/>)

Author: lukaseder

Published: 2022-05-31T08:39:55Z

Content type: opinion

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [ordering](<https://devfeed.tech/topics/ordering.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [operations](<https://devfeed.tech/tags/operations.md>), [order-of-operations](<https://devfeed.tech/tags/order-of-operations.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-syntax](<https://devfeed.tech/tags/sql-syntax.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

The article examines the difference between SQL's lexical order, such as SELECT .. FROM, and its logical order of operations, such as FROM .. SELECT. It argues that changing the syntax would improve logical consistency but would not fully fix SQL, and discusses jOOQ's support for alternative forms and variations across database systems.

### Source excerpt

Every now and then, I see folks lament the SQL syntax's peculiar disconnect between the lexical order of operations (SELECT .. FROM) the logical order of operations (FROM .. SELECT) Most recently here in a Youtube comment reply to a recent jOOQ/kotlin talk. Let's look at why jOOQ didn't fall into this trap of trying ... Continue reading Changing SELECT .. FROM Into FROM .. SELECT Does Not "Fix" SQL ->

## Setting the JDBC Statement.setFetchSize() to 1 for Single Row Queries

DevFeed: [Setting the JDBC Statement.setFetchSize() to 1 for Single Row Queries](<https://devfeed.tech/articles/setting-the-jdbc-statement-setfetchsize-to-1-for-single-row-queries-28959.md>)

Original publisher: [Read original article](<https://blog.jooq.org/setting-the-jdbc-statement-setfetchsize-to-1-for-single-row-queries/>)

Author: lukaseder

Published: 2022-05-11T08:55:41Z

Content type: article

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [db2](<https://devfeed.tech/tags/db2.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [fetch-size](<https://devfeed.tech/tags/fetch-size.md>), [fetchsize](<https://devfeed.tech/tags/fetchsize.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [ojdbc](<https://devfeed.tech/tags/ojdbc.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>)

### AI overview

This article examines whether jOOQ should call JDBC Statement.setFetchSize(1) by default for queries expected to return at most one row. It proposes measuring the effect with a JMH benchmark and discusses limitations on comparing execution speed across RDBMS.

### Source excerpt

An interesting hint by Vladimir Sitnikov has made me think about a new benchmark for jOOQ: The benchmark should check whether single row queries should have a JDBC Statement.setFetchSize(1) call made to them by default. The Javadoc of the method says: Gives the JDBC driver a hint as to the number of rows that should ... Continue reading Setting the JDBC Statement.setFetchSize() to 1 for Single Row Queries ->

## Postgres HA: roles are dynamic

DevFeed: [Postgres HA: roles are dynamic](<https://devfeed.tech/articles/postgres-ha-roles-are-dynamic-34616.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2021/12/postgres-ha-roles-are-dynamic/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2021-12-14T21:36:36Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [rdbms](<https://devfeed.tech/topics/rdbms.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [failover](<https://devfeed.tech/tags/failover.md>), [high-availability](<https://devfeed.tech/tags/high-availability.md>), [independent](<https://devfeed.tech/tags/independent.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [primary](<https://devfeed.tech/tags/primary.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [server](<https://devfeed.tech/tags/server.md>), [standby](<https://devfeed.tech/tags/standby.md>)

### AI overview

This article explains why PostgreSQL high-availability systems require dynamic node roles. Failover can promote a standby node to primary, so a node's current role should not be treated as a fixed architectural property. The article also discusses how PostgreSQL configuration and instance initialization affect role changes, and why separate failover-management software is needed.

### Source excerpt

High-Availability comes with some impact on your architecture choices, in particular when applied to RDBMS such as Postgres. One such impact is the idea of a failover. When implementing database HA, it is usually expected that both the service and the data are maintained available in the face of operational faults. The most common way to implement resilience includes automated (or manual) failover, where a new primary is elected among a list of standby nodes. In other words, as soon as Postgres High-Availability is implemented, the roles of your Postgres nodes are dynamic. The fact that a given node is a primary or a standby at any given point in time ceases to be relevant to understanding your architecture. In fact, the only thing that's now given about the role of a node is that it will change. Otherwise you don't have failover capability, and then, you probably don't have HA in the first place, right? In this article we are going to try and understand what having dynamic roles for Postgres nodes in a HA system means.

## PostgreSQL as a Microservice

DevFeed: [PostgreSQL as a Microservice](<https://devfeed.tech/articles/postgresql-as-a-microservice-34614.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2021/06/postgresql-as-a-microservice/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2021-06-08T11:40:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [acid](<https://devfeed.tech/topics/acid.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [acid](<https://devfeed.tech/tags/acid.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>)

### AI overview

The article examines PostgreSQL as a potential microservice and argues that its distinctive value is not merely storage. It emphasizes PostgreSQL's role in managing concurrent access to data while providing guarantees such as ACID properties, schemas, and constraints.

### Source excerpt

The MACI French podcast honoured me with an invitation to a guest appearance on their weekly schedule. As you can imagine, we talked about many things related to PostgreSQL... and also reacted to some newsworthy articles carefully curated by the MACI team. One of the topics we discussed in the podcast started with looking at PostgreSQL through the angle of it being one of the microservices that your application would be composed of.

## Red Hat Single Sign-On in Keynote demo on Red Hat Summit!

DevFeed: [Red Hat Single Sign-On in Keynote demo on Red Hat Summit!](<https://devfeed.tech/articles/red-hat-single-sign-on-in-keynote-demo-on-red-hat-summit-31574.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2018/06/red-hat-single-sign-on-in-keynote-demo>)

Author: Marek Posolda

Published: 2018-06-17T00:00:00Z

Content type: article

Language: en

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

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [openid](<https://devfeed.tech/topics/openid.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>), [Security](<https://devfeed.tech/topics/security.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Azure](<https://devfeed.tech/topics/azure.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [azure](<https://devfeed.tech/tags/azure.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [idm](<https://devfeed.tech/tags/idm.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>), [red-hat-summit](<https://devfeed.tech/tags/red-hat-summit.md>), [replication](<https://devfeed.tech/tags/replication.md>), [saml](<https://devfeed.tech/tags/saml.md>), [security](<https://devfeed.tech/tags/security.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

This article describes a Red Hat Summit keynote demo using Red Hat Single Sign-On, based on Keycloak, to authenticate a mobile game deployed across Azure, Amazon, and a private cloud. It explains why independent instances with separate databases and caches create limitations for failover, session visibility, user changes, and security, motivating a replicated setup.

### Source excerpt

Red Hat Summit is one of the most important events during the year. Many geeks, Red Hat employees and customers have great opportunity to meet, learn new things and attend lots of interesting presentations and trainings. During the summit this year, there were few breakout sessions, which were solely about Keycloak and Red Hat SSO. You can take a look at this blogpost for more details. One of the most important parts of Red Hat Summit are Keynote demos, which show the main bullet points and strategies going forward. Typically they also contain the demos of the most interesting technologies, which Red Hat uses. On the Thursday morning keynote, there was this demo to show the Hybrid Cloud with 3 clouds (Azure, Amazon, Private) in action! There were many technologies and interesting projects involved. Among others, let's name Red Hat JBoss Data Grid (JDG), OpenWhisk or Gluster FS. The RH-SSO (Red Hat product based on Keycloak project) had a honor to be used as well. Red Hat SSO setup details The frontend of the demo was the simple mobile game. RH-SSO was used at the very first stage to authenticate users to the mobile game. Each attendee had an opportunity to try it by yourself. In total, we had 1200 players of the game. There was loadbalancer up-front and every user was automatically forwarded to one of the 3 clouds. The mobile application used RH-SSO Javascript adapter (keycloak.js) to communicate with RH-SSO. With Javascript application, whole OpenID Connect login flow happens within browser and hence can rely on sticky session. So since Javascript adapter is used, you may think that we can do just "easy" setup and let the RH-SSO instances across all 3 clouds to be independent of each other and have each of them to use separate RDBMS and infinispan caches. See the image below for what such a setup would look like: With this setup, every cloud is aware just about the users and sessions created on itself. This is fine with sticky session, but it won't work for failove

## Migrating to PostgreSQL, the White Paper

DevFeed: [Migrating to PostgreSQL, the White Paper](<https://devfeed.tech/articles/migrating-to-postgresql-the-white-paper-34580.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/01/migrating-to-postgresql-the-white-paper/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-01-11T09:01:45Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Database Migration](<https://devfeed.tech/topics/database-migration.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [database-migration](<https://devfeed.tech/tags/database-migration.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [migration](<https://devfeed.tech/tags/migration.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>)

### AI overview

The article introduces a white paper on migrating from another relational database system to PostgreSQL. It presents Continuous Migration, a methodology involving target PostgreSQL architecture setup, PostgreSQL-based continuous integration, repeated data migration from the production database, and a planned final migration.

### Source excerpt

After having been involved in many migration projects over the last 10 years, I decided to publish the following White Paper in order to share my learnings. The paper is titled Migrating to PostgreSQL, Tools and Methodology and details the Continuous Migration approach. It describes how to migrate from another relational database server technology to PostgreSQL. The reasons to do so are many, and first among them is often the licensing model.

[Next page](<https://devfeed.tech/tags/rdbms.md?cursor=WyIyMDE4LTAxLTExVDA5OjAxOjQ1KzAwOjAwIiwgIjMwZjZiNTRiLWEzNWUtNDlmNy04MGMxLWM5MjJmYzU4Njc4MiJd>)