# rdbms

A relational database management system (RDBMS) stores and retrieves related data in row-based tables for applications.

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

## Simplifying ANTI JOIN with jOOQ Syntax

DevFeed: [Simplifying ANTI JOIN with jOOQ Syntax](<https://devfeed.tech/articles/simplifying-anti-join-with-jooq-syntax-28960.md>)

Original publisher: [Read original article](<https://blog.jooq.org/simplifying-anti-join-with-jooq-syntax/>)

Author: lukaseder

Published: 2026-05-07T11:26:46Z

Content type: tutorial

Language: en

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

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [databricks](<https://devfeed.tech/topics/databricks.md>)

Tags: [anti-join](<https://devfeed.tech/tags/anti-join.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [join-paths](<https://devfeed.tech/tags/join-paths.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-syntax](<https://devfeed.tech/tags/sql-syntax.md>)

### AI overview

The article explains how to express an anti join more concisely with jOOQ. It shows that jOOQ can render native anti-join syntax for supported RDBMSs such as ClickHouse and Databricks, translate it for other systems, and use implicit correlated path joins introduced in jOOQ 3.19.

### Source excerpt

ANTI JOIN is a very useful operator from relational algebra. Regrettably, only few dialects support it in terms of SQL syntax, as we've written earlier. In jOOQ, you can write it as follows: If your RDBMS supports this natively (e.g. ClickHouse, Databricks), then it is rendered as such. Otherwise, jOOQ will translate this to: But ... Continue reading Simplifying ANTI JOIN with jOOQ Syntax ->

## Think About SQL MERGE in Terms of a RIGHT JOIN

DevFeed: [Think About SQL MERGE in Terms of a RIGHT JOIN](<https://devfeed.tech/articles/think-about-sql-merge-in-terms-of-a-right-join-28967.md>)

Original publisher: [Read original article](<https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/>)

Author: lukaseder

Published: 2025-03-13T14:45:53Z

Content type: tutorial

Language: en

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

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

Tags: [databricks](<https://devfeed.tech/tags/databricks.md>), [etl](<https://devfeed.tech/tags/etl.md>), [firebird](<https://devfeed.tech/tags/firebird.md>), [merge](<https://devfeed.tech/tags/merge.md>), [outer-join](<https://devfeed.tech/tags/outer-join.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [right-join](<https://devfeed.tech/tags/right-join.md>), [schema](<https://devfeed.tech/tags/schema.md>), [semantics](<https://devfeed.tech/tags/semantics.md>), [source](<https://devfeed.tech/tags/source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [statement](<https://devfeed.tech/tags/statement.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [table](<https://devfeed.tech/tags/table.md>), [target-table](<https://devfeed.tech/tags/target-table.md>), [when-matched](<https://devfeed.tech/tags/when-matched.md>), [when-not-matched](<https://devfeed.tech/tags/when-not-matched.md>), [when-not-matched-by-source](<https://devfeed.tech/tags/when-not-matched-by-source.md>)

### AI overview

The article explains SQL MERGE by relating its target-and-source behavior to a RIGHT JOIN. It covers updating matching rows, inserting nonmatching rows, deletion behavior, and the restriction against duplicate matches.

### Source excerpt

RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. The following two statements are equivalent: It's not unreasonable to expect these two statements to produce the same execution plan on most RDBMS, ... Continue reading Think About SQL MERGE in Terms of a RIGHT JOIN ->

## A Hidden Benefit of Implicit Joins: Join Elimination

DevFeed: [A Hidden Benefit of Implicit Joins: Join Elimination](<https://devfeed.tech/articles/a-hidden-benefit-of-implicit-joins-join-elimination-28930.md>)

Original publisher: [Read original article](<https://blog.jooq.org/a-hidden-benefit-of-implicit-joins-join-elimination/>)

Author: lukaseder

Published: 2024-01-10T14:19:00Z

Content type: article

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

Tags: [implicit-joins](<https://devfeed.tech/tags/implicit-joins.md>), [implicit-path-join](<https://devfeed.tech/tags/implicit-path-join.md>), [java](<https://devfeed.tech/tags/java.md>), [join-elimination](<https://devfeed.tech/tags/join-elimination.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-19](<https://devfeed.tech/tags/jooq-3-19.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [many-to-many-joins](<https://devfeed.tech/tags/many-to-many-joins.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [path-joins](<https://devfeed.tech/tags/path-joins.md>), [sql](<https://devfeed.tech/tags/sql.md>), [to-many-joins](<https://devfeed.tech/tags/to-many-joins.md>)

### AI overview

This article explains how jOOQ 3.19 can eliminate unnecessary tables from implicit path joins when no columns from those tables are referenced. Primary and foreign keys preserve equivalence, while referenced columns cause the table to remain in the join tree. The behavior applies to implicit path joins and depends on a flag that is disabled by default.

### Source excerpt

One of jOOQ's key features so far has always been to render pretty much exactly the SQL that users expect, without any surprises - unless some emulation is required to make a query work, of course. This means that while join elimination is a powerful feature of many RDBMS, it isn't part of jOOQ's feature ... Continue reading A Hidden Benefit of Implicit Joins: Join Elimination ->

## jOOQ 3.19.0 Released with DuckDB, Trino, Oracle 23c support, join path improvements, an official gradle plugin, commercial maven repositories, policies, UDT paths, trigger meta data, hierarchies, and much more

DevFeed: [jOOQ 3.19.0 Released with DuckDB, Trino, Oracle 23c support, join path improvements, an official gradle plugin, commercial maven repositories, policies, UDT paths, trigger meta data, hierarchies, and much more](<https://devfeed.tech/articles/jooq-3-19-0-released-with-duckdb-trino-oracle-23c-support-join-path-improvements-an-official-gradle-plugin-commercial-maven-repositories-policies-udt-paths-trigger-meta-d-28951.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jooq-3-19-0-released-with-duckdb-trino-oracle-23c-support-join-path-improvements-an-official-gradle-plugin-commercial-maven-repositories-policies-udt-paths-trigger-meta-data-hierarchies-and/>)

Author: lukaseder

Published: 2023-12-15T16:30:41Z

Content type: release

Language: en

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

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>), [CockroachDB](<https://devfeed.tech/topics/cockroachdb.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [rdbms](<https://devfeed.tech/topics/rdbms.md>), [Multi-tenancy](<https://devfeed.tech/topics/multi-tenancy.md>)

Tags: [cockroachdb](<https://devfeed.tech/tags/cockroachdb.md>), [cockroachdb-23](<https://devfeed.tech/tags/cockroachdb-23.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [implicit-joins](<https://devfeed.tech/tags/implicit-joins.md>), [java-8](<https://devfeed.tech/tags/java-8.md>), [join-paths](<https://devfeed.tech/tags/join-paths.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-19](<https://devfeed.tech/tags/jooq-3-19.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [maven](<https://devfeed.tech/tags/maven.md>), [maven-repository](<https://devfeed.tech/tags/maven-repository.md>), [multi-tenancy](<https://devfeed.tech/tags/multi-tenancy.md>), [oracle-23c](<https://devfeed.tech/tags/oracle-23c.md>), [policies](<https://devfeed.tech/tags/policies.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [releases](<https://devfeed.tech/tags/releases.md>), [row-level-security](<https://devfeed.tech/tags/row-level-security.md>), [security](<https://devfeed.tech/tags/security.md>), [trigger-meta-data](<https://devfeed.tech/tags/trigger-meta-data.md>), [triggers](<https://devfeed.tech/tags/triggers.md>), [trino](<https://devfeed.tech/tags/trino.md>), [trinodb](<https://devfeed.tech/tags/trinodb.md>), [udt-paths](<https://devfeed.tech/tags/udt-paths.md>), [udts](<https://devfeed.tech/tags/udts.md>)

### AI overview

The jOOQ 3.19.0 release adds experimental DuckDB support, Trino support, and support for CockroachDB 23 and Oracle 23c. It also improves join paths, introduces an official Gradle plugin and a commercial Maven repository, and adds policies for row-level security.

### Source excerpt

New Dialects It's been a few releases since we've added support for new dialects, but finally some very interesting RDBMS of increasing popularity have joined the jOOQ family including: These dialects are available in all jOOQ editions. New dialect versions In addition to these entirely new dialects, big new CockroachDB and Oracle versions have shipped: ... Continue reading jOOQ 3.19.0 Released with DuckDB, Trino, Oracle 23c support, join path improvements, an official gradle plugin, commercial maven repositories, policies, UDT paths, trigger meta data, hierarchies, and much more ->

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

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

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

## PostgreSQL Conference Europe 2017

DevFeed: [PostgreSQL Conference Europe 2017](<https://devfeed.tech/articles/postgresql-conference-europe-2017-34654.md>)

Original publisher: [Read original article](<https://tapoueh.org/conf/postgresql-conference-europe-2017/>)

Published: 2017-10-30T09:30:22Z

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>), [rdbms](<https://devfeed.tech/topics/rdbms.md>)

Tags: [2017](<https://devfeed.tech/tags/2017.md>), [conference](<https://devfeed.tech/tags/conference.md>), [europe](<https://devfeed.tech/tags/europe.md>), [migration](<https://devfeed.tech/tags/migration.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rdbms](<https://devfeed.tech/tags/rdbms.md>)

### AI overview

This conference talk describes pgloader as a tool for migrating data from another RDBMS to PostgreSQL. It explains that migrations can be complex and presents pgloader as a way to simplify the process while addressing common pitfalls.

### Source excerpt

pgloader, your migration companion Migrating data from another RDBMS to PostgreSQL should be really easy. After all it's all relations and tables and the same data types everywhere or abouts, with text, dates and numbers. Well it's actually quite messy and complex to migrate the data properly from one system to another. pgloader solves this problem and turns it into a one-liner: in this talk you'll learn how to benefit from that, and the classic pitfalls to avoid.