# CRUD

Published articles for CRUD.

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

## 【kube-apiserver】storage.Interface 与 etcd3：codec、prefix 与 CRUD 路径

DevFeed: [【kube-apiserver】storage.Interface 与 etcd3：codec、prefix 与 CRUD 路径](<https://devfeed.tech/articles/kube-apiserver-storage-interface-etcd3-codec-prefix-crud-33959.md>)

Original publisher: [Read original article](<https://quant67.com/post/apiserver/03-storage-etcd3/03-storage-etcd3.html>)

Author: Liao Tonglang

Published: 2026-08-28T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [API](<https://devfeed.tech/topics/api.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [Raft](<https://devfeed.tech/topics/raft.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apiserver](<https://devfeed.tech/tags/apiserver.md>), [codec](<https://devfeed.tech/tags/codec.md>), [crud](<https://devfeed.tech/tags/crud.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [encryption-at-rest](<https://devfeed.tech/tags/encryption-at-rest.md>), [etcd3](<https://devfeed.tech/tags/etcd3.md>), [guaranteed-update](<https://devfeed.tech/tags/guaranteed-update.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [optimistic-concurrency](<https://devfeed.tech/tags/optimistic-concurrency.md>), [raft](<https://devfeed.tech/tags/raft.md>), [rest](<https://devfeed.tech/tags/rest.md>), [storage](<https://devfeed.tech/tags/storage.md>), [v1-30-3](<https://devfeed.tech/tags/v1-30-3.md>)

### AI overview

This tutorial explains how kube-apiserver's storage.Interface integrates with the etcd3 backend in Kubernetes v1.30.3. It covers key prefixes, codec serialization, value transformation and encryption-at-rest boundaries, optimistic concurrency through GuaranteedUpdate and transactions, and the mapping from etcd3 watch streams to apiserver events.

### Source excerpt

拆解 kube-apiserver 的 storage.Interface 契约与 etcd3 实现：codec 序列化、pathPrefix/resourcePrefix、value.Transformer 加密边界、GuaranteedUpdate 乐观并发，以及 Watch 到 etcd3 的完整路径。版本锚定 Kubernetes v1.30.3 / etcd v3.5.33。

## Why CRUD APIs Stop Teaching New Lessons After Basic Production Problems Are Solved

DevFeed: [Why CRUD APIs Stop Teaching New Lessons After Basic Production Problems Are Solved](<https://devfeed.tech/articles/boredom-is-a-signal-to-find-a-harder-problem-when-your-crud-api-stops-teaching-you-39585.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/33-game-of-life-boredom-harder-problem/>)

Author: hello@ankit-rana.com

Published: 2026-08-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [CRUD](<https://devfeed.tech/topics/crud.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Network](<https://devfeed.tech/topics/network.md>), [Redis](<https://devfeed.tech/topics/redis.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [backend](<https://devfeed.tech/tags/backend.md>), [cache-invalidation](<https://devfeed.tech/tags/cache-invalidation.md>), [career](<https://devfeed.tech/tags/career.md>), [crud](<https://devfeed.tech/tags/crud.md>), [latency](<https://devfeed.tech/tags/latency.md>), [learning](<https://devfeed.tech/tags/learning.md>), [network](<https://devfeed.tech/tags/network.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>), [system-design](<https://devfeed.tech/tags/system-design.md>)

### AI overview

A small CRUD API teaches backend fundamentals such as validation, schema design, migrations, query behavior, connection pooling, and cache invalidation. After those issues are understood, developers may need more complex failure domains involving cross-service contracts, event ordering, and slow downstream calls to continue learning.

### Source excerpt

A todo CRUD API teaches real things, including validation, schema design, the N+1 query, index selection, pool sizing, and cache invalidation, and then it goes quiet. Boredom arriving right after you fix those once is not laziness; it is the signal that the problem stopped presenting decisions you have not already seen. The move is up the stack, to a failure domain with cross-service contracts, event ordering, and downstream calls that hang.

## How to Design APIs

DevFeed: [How to Design APIs](<https://devfeed.tech/articles/how-to-design-apis-34680.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/how-to-design-apis>)

Author: Saurabh Dashora

Published: 2026-06-02T06:41:25Z

Content type: tutorial

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [interface](<https://devfeed.tech/topics/interface.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [crud](<https://devfeed.tech/tags/crud.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [interface](<https://devfeed.tech/tags/interface.md>), [json](<https://devfeed.tech/tags/json.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rpc](<https://devfeed.tech/tags/rpc.md>)

### AI overview

A tutorial on API design covering interface contracts, resource and endpoint naming, request and response formats, API paradigms, and modeling relationships between entities.

### Source excerpt

Key considerations to keep in mind

## Pale Blue Spring Admin adds CRUD editing and custom UI snippets

DevFeed: [Pale Blue Spring Admin adds CRUD editing and custom UI snippets](<https://devfeed.tech/articles/pale-blue-spring-admin-now-you-can-actually-edit-stuff-and-custom-ui-snippets-38749.md>)

Original publisher: [Read original article](<https://www.paleblueapps.com/rockandnull/spring-boot-admin-crud-custom-ui/>)

Author: Mike Yerou

Published: 2026-05-14T11:57:06Z

Content type: release

Language: en

Sources: [Rock and Null](<https://devfeed.tech/sources/rock-and-null.md>)

Topics: [CRUD](<https://devfeed.tech/topics/crud.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Django Admin](<https://devfeed.tech/topics/django-admin.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [crud](<https://devfeed.tech/tags/crud.md>), [django-admin](<https://devfeed.tech/tags/django-admin.md>), [infra](<https://devfeed.tech/tags/infra.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The latest Pale Blue Spring Admin release adds create, update, and delete operations directly in the UI. It also introduces custom UI snippets for adding elements such as dashboard widgets and action buttons, extending the admin portal beyond its generated interface.

### Source excerpt

Read-only is great, but editing is better. The latest update to Pale Blue Spring Admin introduces full CRUD functionality and custom UI snippets, making your Spring Boot admin panel as powerful as your favorite Python tools.

## The Seniority Trap: Why You Might Have 1 Year of Experience, 10 Times

DevFeed: [The Seniority Trap: Why You Might Have 1 Year of Experience, 10 Times](<https://devfeed.tech/articles/the-seniority-trap-why-you-might-have-1-year-of-experience-10-times-41897.md>)

Original publisher: [Read original article](<https://www.thesweekly.com/p/the-seniority-trap-why-you-might>)

Author: Kevin Naughton Jr.

Published: 2026-04-05T14:03:00Z

Content type: opinion

Language: en

Sources: [The Software Engineer Weekly](<https://devfeed.tech/sources/the-software-engineer-weekly.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [coding](<https://devfeed.tech/topics/coding.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [complex](<https://devfeed.tech/tags/complex.md>), [crud](<https://devfeed.tech/tags/crud.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [linkedin](<https://devfeed.tech/tags/linkedin.md>), [metric](<https://devfeed.tech/tags/metric.md>), [novel](<https://devfeed.tech/tags/novel.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [problems](<https://devfeed.tech/tags/problems.md>), [software](<https://devfeed.tech/tags/software.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [times](<https://devfeed.tech/tags/times.md>)

### AI overview

An opinion piece argues that years of experience alone do not establish software engineering seniority. It contrasts engineers who solve increasingly complex, novel problems with those who repeatedly solve similar CRUD application problems using familiar patterns.

### Source excerpt

We've all seen the "Senior Software Engineer" LinkedIn profiles with 10+ years of experience. But in the world of engineering, time is a deceptive metric. There is a massive, quiet difference between an engineer who has spent a decade solving increasingly complex, novel problems and an engineer who has spent a decade solving the same CRUD app problems using the same patterns they learned in year one.

## Unifying Internal APIs: A Different Use Case for GraphQL Gateways

DevFeed: [Unifying Internal APIs: A Different Use Case for GraphQL Gateways](<https://devfeed.tech/articles/unifying-internal-apis-a-different-use-case-for-graphql-gateways-28060.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2026-03-27-unifying-internal-apis-a-different-use-case-for-graphql-gateways/>)

Author: Angel Svirkov Full-Stack Software Engineer @ trivago GitHub profile Linkedin profile

Published: 2026-03-27T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [gateway](<https://devfeed.tech/topics/gateway.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>)

Tags: [admin](<https://devfeed.tech/tags/admin.md>), [agents](<https://devfeed.tech/tags/agents.md>), [apis](<https://devfeed.tech/tags/apis.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [backend](<https://devfeed.tech/tags/backend.md>), [crud](<https://devfeed.tech/tags/crud.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

This article describes how trivago used GraphQL Mesh to unify fragmented internal APIs into a gateway for administration, CRUD operations, reporting, and data exploration. It covers the architecture, implementation challenges encountered over six years in production, and possible future uses involving AI agents.

### Source excerpt

Most GraphQL Gateway discussions focus on public-facing APIs and multi-client architectures. This article explores a different axis--using GraphQL Mesh to stitch internal services into a unified gateway powering admin tooling. We share implementation details, honest challenges from six years in production, and a forward-looking perspective on how AI agents could leverage the unified graph.

## How AI Coding Tools Are Raising Expectations for Junior Backend Developers

DevFeed: [How AI Coding Tools Are Raising Expectations for Junior Backend Developers](<https://devfeed.tech/articles/the-bar-for-junior-developers-has-never-been-higher-28991.md>)

Original publisher: [Read original article](<https://codingwithroby.substack.com/p/the-bar-for-junior-developers-has>)

Author: Eric Roby

Published: 2026-03-17T12:02:13Z

Content type: opinion

Language: en

Sources: [Eric Roby](<https://devfeed.tech/sources/eric-roby.md>)

Topics: [Back end](<https://devfeed.tech/topics/backend.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [codex](<https://devfeed.tech/topics/codex.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [ai](<https://devfeed.tech/tags/ai.md>), [aws](<https://devfeed.tech/tags/aws.md>), [backend](<https://devfeed.tech/tags/backend.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [codex](<https://devfeed.tech/tags/codex.md>), [crud](<https://devfeed.tech/tags/crud.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [docker](<https://devfeed.tech/tags/docker.md>), [junior-developers](<https://devfeed.tech/tags/junior-developers.md>), [kafka](<https://devfeed.tech/tags/kafka.md>)

### AI overview

The article argues that AI coding tools are raising the expectations for junior backend developers. Basic CRUD implementation is becoming less distinctive, while employers may increasingly expect knowledge of systems such as Kafka, containerization with Docker, and deployment on AWS. It also emphasizes that developers still need to understand the fundamentals and the code AI produces.

### Source excerpt

So why is it harder to get in?

## System Design: Principles for Maintainability, Scalability, and Reliability

DevFeed: [System Design: Principles for Maintainability, Scalability, and Reliability](<https://devfeed.tech/articles/system-design-principles-for-maintainability-scalability-and-reliability-39554.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/02-system-design-principles/>)

Author: hello@ankit-rana.com

Published: 2026-03-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [data](<https://devfeed.tech/topics/data.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [observability](<https://devfeed.tech/topics/observability.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [crud](<https://devfeed.tech/tags/crud.md>), [data-systems](<https://devfeed.tech/tags/data-systems.md>), [debug](<https://devfeed.tech/tags/debug.md>), [latency](<https://devfeed.tech/tags/latency.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [observability](<https://devfeed.tech/tags/observability.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [system-design](<https://devfeed.tech/tags/system-design.md>)

### AI overview

This article presents production system design around reliability, scalability, and maintainability. It discusses data building blocks beyond CRUD, fault containment, isolation, testing, recovery, observability, latency versus response time, and vertical versus horizontal scaling.

### Source excerpt

Reliability, scalability, and maintainability rest on one distinction: a fault is a component-level anomaly, a failure is the system no longer delivering its service. Design to contain faults so they never become failures, and stay precise that latency is waiting time while response time is the full client-visible number.

## How do I convert my Cron into a Schedule?

DevFeed: [How do I convert my Cron into a Schedule?](<https://devfeed.tech/articles/how-do-i-convert-my-cron-into-a-schedule-35852.md>)

Original publisher: [Read original article](<https://temporal.io/blog/how-do-i-convert-my-cron-into-a-schedule>)

Author: Quinn Klassen

Published: 2023-12-18T05:00:00Z

Content type: tutorial

Language: en

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

Topics: [Development](<https://devfeed.tech/topics/development.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Python](<https://devfeed.tech/topics/python.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Java](<https://devfeed.tech/topics/java.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [crud](<https://devfeed.tech/tags/crud.md>), [execution](<https://devfeed.tech/tags/execution.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [net](<https://devfeed.tech/tags/net.md>), [python](<https://devfeed.tech/tags/python.md>), [scheduling](<https://devfeed.tech/tags/scheduling.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [visibility](<https://devfeed.tech/tags/visibility.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This tutorial explains how to replace traditional cron jobs with Temporal Schedules. It covers the migration process, Schedule CRUD operations through the SDKs, CLI, and UI, and examples for Python, Go, Java, and .NET.

### Source excerpt

Converting a Cron into a Temporal schedule will will improve the durabililty of task execution and the visibility of schedule and workflow runs.

## jOOQ DAOs, CRUD Access, and the N+1 Query Problem

DevFeed: [jOOQ DAOs, CRUD Access, and the N+1 Query Problem](<https://devfeed.tech/articles/to-dao-or-not-to-dao-28968.md>)

Original publisher: [Read original article](<https://blog.jooq.org/to-dao-or-not-to-dao/>)

Author: lukaseder

Published: 2023-12-06T13:41:52Z

Content type: opinion

Language: en

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

Topics: [CRUD](<https://devfeed.tech/topics/crud.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Domain-driven design (DDD)](<https://devfeed.tech/topics/domain-driven-design.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [account](<https://devfeed.tech/topics/account.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [api](<https://devfeed.tech/tags/api.md>), [crud](<https://devfeed.tech/tags/crud.md>), [dao](<https://devfeed.tech/tags/dao.md>), [data](<https://devfeed.tech/tags/data.md>), [ddd](<https://devfeed.tech/tags/ddd.md>), [developers](<https://devfeed.tech/tags/developers.md>), [join](<https://devfeed.tech/tags/join.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [repository](<https://devfeed.tech/tags/repository.md>), [sql](<https://devfeed.tech/tags/sql.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This opinion article examines jOOQ's DAO API and the tendency to use DAOs or repositories for quick CRUD access. It argues that this approach can obscure query design and lead to inefficient patterns such as N+1 queries, while showing how explicit SQL and bulk operations can improve query structure and performance.

### Source excerpt

jOOQ's DAO API is one of jOOQ's most controversial features. When it was first implemented, it was implemented merely: There's a strong hint about the third bullet given how popular Spring Data's repository "pattern" is. A lot of developers just want to quickly fetch and store data, without giving individual queries much thought. A fun ... Continue reading To DAO or not to DAO ->

## Why You Should Execute jOOQ Queries With jOOQ

DevFeed: [Why You Should Execute jOOQ Queries With jOOQ](<https://devfeed.tech/articles/why-you-should-execute-jooq-queries-with-jooq-28974.md>)

Original publisher: [Read original article](<https://blog.jooq.org/why-you-should-execute-jooq-queries-with-jooq/>)

Author: lukaseder

Published: 2023-01-18T11:46:25Z

Content type: opinion

Language: en

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

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

Tags: [code-generation](<https://devfeed.tech/tags/code-generation.md>), [crud](<https://devfeed.tech/tags/crud.md>), [csv](<https://devfeed.tech/tags/csv.md>), [execution](<https://devfeed.tech/tags/execution.md>), [export](<https://devfeed.tech/tags/export.md>), [identity](<https://devfeed.tech/tags/identity.md>), [import](<https://devfeed.tech/tags/import.md>), [java](<https://devfeed.tech/tags/java.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>), [jpa](<https://devfeed.tech/tags/jpa.md>), [json](<https://devfeed.tech/tags/json.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [multiset](<https://devfeed.tech/tags/multiset.md>), [nested-collections](<https://devfeed.tech/tags/nested-collections.md>), [nested-records](<https://devfeed.tech/tags/nested-records.md>), [orm](<https://devfeed.tech/tags/orm.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [sql](<https://devfeed.tech/tags/sql.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [type-safety](<https://devfeed.tech/tags/type-safety.md>), [udt](<https://devfeed.tech/tags/udt.md>), [updatablerecord](<https://devfeed.tech/tags/updatablerecord.md>), [user-defined-types](<https://devfeed.tech/tags/user-defined-types.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article argues that queries built with jOOQ should generally also be executed with jOOQ. It explains that jOOQ preserves type safety and structured result mapping during execution, whereas extracting SQL and bind values for JDBC-level execution loses compiler knowledge of the result set. It acknowledges limited use cases for executing jOOQ-generated SQL elsewhere, such as a small number of dynamic queries in an otherwise JPA-based application.

### Source excerpt

Previously on this blog, I've written a post explaining why you should use jOOQ's code generator, despite the possibility of using jOOQ without it. In a similar fashion, as I've answered numerous jOOQ questions on Stack Overflow, where someone used jOOQ to build a query, but then executed it elsewhere, including on: jOOQ itself isn't ... Continue reading Why You Should Execute jOOQ Queries With jOOQ ->

## Tutorial: Authentication and Authorization for Kubernetes

DevFeed: [Tutorial: Authentication and Authorization for Kubernetes](<https://devfeed.tech/articles/tutorial-authentication-and-authorization-for-kubernetes-29576.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/authn-authz-tutorial-kubernetes/>)

Author: info@goteleport.com (Lukonde Mwila)

Published: 2022-02-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authn](<https://devfeed.tech/tags/authn.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [authz](<https://devfeed.tech/tags/authz.md>), [cli](<https://devfeed.tech/tags/cli.md>), [crud](<https://devfeed.tech/tags/crud.md>), [devops](<https://devfeed.tech/tags/devops.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [security](<https://devfeed.tech/tags/security.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains the difference between authentication and authorization in Kubernetes. It describes how the Kubernetes API server validates the identity of users or other entities and checks whether they have permission to perform requested operations.

### Source excerpt

The difference between who gets to access (AuthN) a Kubernetes cluster and what they can do with those permissions (AuthZ)

## Getting Used to Postgres from MySQL - I Choose You, Postico

DevFeed: [Getting Used to Postgres from MySQL - I Choose You, Postico](<https://devfeed.tech/articles/getting-used-to-postgres-from-mysql-i-choose-you-postico-28219.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/postgres/2020/01/20/getting-used-to-postgres-from-mysql-i-choose-you-postico.html>)

Author: Fuzzygroup

Published: 2020-01-20T00:00:00Z

Content type: opinion

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [MySQL](<https://devfeed.tech/topics/mysql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [App](<https://devfeed.tech/topics/app.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [crud](<https://devfeed.tech/tags/crud.md>), [database](<https://devfeed.tech/tags/database.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postico](<https://devfeed.tech/tags/postico.md>), [shell](<https://devfeed.tech/tags/shell.md>)

### AI overview

The author describes moving from MySQL to PostgreSQL and finding that Postico makes the transition easier. Postico is presented as a graphical tool for viewing and editing database data, including row-level changes, and as an alternative to building a web form for simple database updates.

### Source excerpt

Despite my mildly fanatical adherence to MySQL, there really is nothing wrong with Postgres and quite a bit to like. Given that Postgres is the default database for Heroku, I am spending more and more time using Postgres these days. What I've found is that my resistance to Postgres, more than anything else, was simply that I was really, really used to the MySQL command line and shell. What I've found is that if you pair Postico with Postgres then it makes a very easy transition from MySQL. Postico is a wonderfully written app (yes I'm a paid user now) that provides a great DB viewing and manipulation tool right down to row level editing. I found myself today, rather than writing a web form to update the database simply editing the data with Postico. Given how easily I generate CRUD apps, that's a pretty big step for me. Recommended.

## Hooking in a Stats module in Rails Active Record

DevFeed: [Hooking in a Stats module in Rails Active Record](<https://devfeed.tech/articles/hooking-in-a-stats-module-in-rails-active-record-39610.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2019-06-09_Hooking-in-a-Stats-module-in-Rails-Active-Record-942c4fdbc0a9>)

Published: 2019-06-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [crud](<https://devfeed.tech/tags/crud.md>), [orm](<https://devfeed.tech/tags/orm.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This tutorial explains how to integrate a separate statistics module into Rails Active Record by overriding model CRUD methods and tracking operation counts. It also describes why this approach does not fully handle chained ActiveRecord::Relation queries.

### Source excerpt

Most full-fledged web frameworks come with ORMs built in. ORMs or Object Relational Mappings help to map the programming language data structures to actual data stores without having to worry about the underlying data source...

## GraphQL in Depth: What, Why, and How

DevFeed: [GraphQL in Depth: What, Why, and How](<https://devfeed.tech/articles/graphql-in-depth-what-why-and-how-21877.md>)

Original publisher: [Read original article](<https://ponyfoo.com/articles/graphql-in-depth-what-why-and-how>)

Author: ryan.glover@cleverbeagle.com (Ryan Glover)

Published: 2019-03-12T12:01:43Z

Content type: tutorial

Language: en

Sources: [Pony Foo](<https://devfeed.tech/sources/pony-foo.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [API](<https://devfeed.tech/topics/api.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [code](<https://devfeed.tech/tags/code.md>), [crud](<https://devfeed.tech/tags/crud.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [rest](<https://devfeed.tech/tags/rest.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

An in-depth tutorial introducing GraphQL, explaining how it works, how it compares with REST, and how to use types, queries, mutations, and schemas to build a simple API.

### Source excerpt

GraphQL is all the rage, but what exactly is it? In this in-depth walkthrough, we take a look at what GraphQL is, how to use it, and why you should use it. Learn why GraphQL is all the rage! We'll walk through the implementation of a schema for a popcorn company's API, learning about types, queries, and mutations as we go. I love popcorn. As I'm writing this, I'm snacking on a bowl of multi-colored kernels, lightly seasoned with Flavacol (hint: this is the movie theater's secret) and I'm feeling a twinge of hubris in my eye... "I should start a popcorn company..." Well, that's a terrible idea, Ryan! But, for the sake of this tutorial, it's the best idea you've had all week. In this tutorial, we're going to learn how to create a simple, GraphQL-based API for a popcorn company. All we need is a name. Seeing as how I'm quite fond of sarcasm, how about... Sarcastic Kernels: The Popcorn You Love to Hate to Eat™ Perfect! And like any self-respecting nerd, it only seems right to start writing some code before we come up with a sound business plan. To get started, let's wrap our heads around what GraphQL is and how it compares to REST. What is GraphQL? GraphQL is a client-side query language coupled with a pattern -- formally known as a "schema" -- for organizing the creation, reading, updating, and deleting of data in your application (yeah, that CRUD). We say "application", here, and not database because GraphQL is data-source-agnostic, meaning it doesn't care where your data lives. From the outside looking in, GraphQL can seem quite scary. Does the "Graph" part mean I have to learn about graph databases? Does the QL (query language) mean I have to learn I have to learn a brand new programming language?! Not quite. To calm your nerves, the harsh truth is: GraphQL is just a dressed up GET or POST request. Wait, what?! Yep. While GraphQL as a whole does introduce some new concepts for organizing and interacting with your data, behind the curtain, GraphQL still relies on a good ol'

## Transitioning from v1 Items to Catalog APIs

DevFeed: [Transitioning from v1 Items to Catalog APIs](<https://devfeed.tech/articles/transitioning-from-v1-items-to-catalog-apis-15931.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/transitioning-from-v1-items-to-catalog-apis>)

Author: Tristan Sokol

Published: 2017-09-13T18:09:33Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog](<https://devfeed.tech/sources/square-corner-blog-medium.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [CRUD](<https://devfeed.tech/topics/crud.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [catalog](<https://devfeed.tech/tags/catalog.md>), [code](<https://devfeed.tech/tags/code.md>), [crud](<https://devfeed.tech/tags/crud.md>), [v1](<https://devfeed.tech/tags/v1.md>)

### AI overview

This tutorial explains how to transition from Square's v1 Items APIs to its newer Catalog APIs. It describes how Catalog endpoints consolidate item-related entities, support batch operations, simplify item creation, and make management across multiple locations easier.

### Source excerpt

Item management can be an important piece of any application. Here is what you need to know if you are moving from the v1 items APIs to the new Catalog endpoints.

## REST API with KoaJS and MongoDB (Part - 3)

DevFeed: [REST API with KoaJS and MongoDB (Part - 3)](<https://devfeed.tech/articles/rest-api-with-koajs-and-mongodb-part-3-26290.md>)

Original publisher: [Read original article](<https://masnun.com/rest-api-koajs-mongodb-part-3/>)

Author: masnun

Published: 2017-08-09T09:47:16Z

Content type: tutorial

Language: en

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

Topics: [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [JSON](<https://devfeed.tech/topics/json.md>), [CRUD](<https://devfeed.tech/topics/crud.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [crud](<https://devfeed.tech/tags/crud.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [koajs](<https://devfeed.tech/tags/koajs.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [rest](<https://devfeed.tech/tags/rest.md>)

### AI overview

Part 3 of a KoaJS and MongoDB REST API series explains how to add authentication with JSON Web Tokens, install JWT-related packages, secure routes with middleware, and return JSON authentication errors.

### Source excerpt

In Part -1 of this series, we saw how we can get started with KoaJS and in Part - 2 we built CRUD endpoints with MongoDB. In this part, we're going to work with authentication. We will be using JSON Web Tokens aka JWT for the auth part. We have written detailed pieces on JWT before. You [...] The post REST API with KoaJS and MongoDB (Part - 3) appeared first on Abu Ashraf Masnun.

## Using MassiveJS with Node and Postgres for database queries

DevFeed: [Using MassiveJS with Node and Postgres for database queries](<https://devfeed.tech/articles/node-postgres-massivejs-a-better-database-experience-41181.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2015/11/30/Node-Postgres-MassiveJS-A-better-database-experience/>)

Author: Map

Published: 2015-11-30T20:55:56Z

Content type: article

Language: en

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

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [crud](<https://devfeed.tech/tags/crud.md>), [database](<https://devfeed.tech/tags/database.md>), [install](<https://devfeed.tech/tags/install.md>), [localhost](<https://devfeed.tech/tags/localhost.md>), [node](<https://devfeed.tech/tags/node.md>), [npm](<https://devfeed.tech/tags/npm.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This tutorial evaluates MassiveJS as an alternative to conventional ORMs for Node applications using Postgres. It demonstrates connecting to a database, querying users, requiring a primary-key index, and running arbitrary SQL.

### Source excerpt

First some background-I've always had a bit of a love hate relationship with ORMs. ORMs are great for basic crud applications, which inevitably happens at some point for an app. The main two problems I have with ORMs is: They treat all databases as equal (yes, this is a little overgeneralized but typically true). They claim to do this for database portability, but in reality an app still can't just up and move from one to another. They don't handle complex queries well at all. As someone that sees SQL as a very powerful language, taking away all the power just leaves me with pain. Of course these aren't the only issues with them, just the two ones I personally run into over and over. In some playing with Node I was optimistic to explore Massive.JS as it seems to buck the trend of just imitating all other ORMs. My initial results-it makes me want to do more with Node just for this library. After all the power of a language is the ecosystem of libraries around it, not just the core language. So let's take a quick tour through with a few highlights of what makes it really great. Getting setup Without further adieu here's a quick tour around it. First let's pull down the example database from PostgresGuide Then let's setup out Node app: $ npm init $ npm install massive --save Connecting and querying Now let's try to connect and say query a user from within our database. Create the following as an index.js file, then run with node index.js: var massive = require("massive"); var connectionString = "postgres://ckerstiens:@localhost/example"; var db = massive.connectSync({connectionString : connectionString}); db.users.find(1, function(err,res){ console.log(res); }); Upon first run if you're like me and use the PostgresGuide example database (which I now need to go back and tidy up), you'll get the following: db.users.find(1, function(err,res){ ^ TypeError: Cannot read property 'find' of undefined I can't describe how awesome it is to see this. What's happening is when Mass

## Why Many Business Applications Need Fewer High-Level Abstractions

DevFeed: [Why Many Business Applications Need Fewer High-Level Abstractions](<https://devfeed.tech/articles/abstract-enough-38423.md>)

Original publisher: [Read original article](<https://khmylov.com/2015/10/abstract-enough/>)

Author: Andrew Khmylov

Published: 2015-10-06T00:00:00Z

Content type: opinion

Language: en

Sources: [Despite the odds](<https://devfeed.tech/sources/despite-the-odds.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software](<https://devfeed.tech/topics/software.md>), [Database](<https://devfeed.tech/topics/database.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Category Theory](<https://devfeed.tech/topics/category-theory.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [automation](<https://devfeed.tech/tags/automation.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [code](<https://devfeed.tech/tags/code.md>), [crud](<https://devfeed.tech/tags/crud.md>), [data](<https://devfeed.tech/tags/data.md>), [development](<https://devfeed.tech/tags/development.md>), [functional](<https://devfeed.tech/tags/functional.md>)

### AI overview

The article argues that many IT products are primarily business automation systems built around stateful data manipulation. It suggests that developers should focus on resource constraints, maintainability, and correctness instead of adding unnecessary high-level abstractions.

### Source excerpt

Programmers tend to think there is something special about them. However, a vast amount of IT jobs out there is mostly about business automation and solving auxiliary tasks, with client software being just a tool to help specialists do their real-world jobs--track the state of component research and development, automate status reporting, control the operating hardware mechanism. The so called "business logic" of your product is probably just a bloated mess on top of the huge state machine. If you ever put some "entities" in the database, then you are probably building a state machine, with the only varying parameter being its size and the number of moving parts. But it seems that building "state machine"-ish entity manipulation applications (CRUD, anyone?) is kind of an already researched area with a long history. Of course every product is different, but what I'm trying to say here is that there is a high chance that you actually don't need that many concepts and high-level abstractions to make your product happen. What's more likely is that you will face three types of challenges: How can I make my data manipulation fit into the resource constraints, like time, storage, memory, latency, etc.? How can I make the product to be easy to change and adapt to the new requirements? I'd say that the task of ensuring that newcomers can easily grab the project's source code base and get familiar with it falls in this category as well, because if the code and architecture is easy to grasp, then there is a high chance that it will be easy to modify as well. How can I achieve the highest possible correctness? I want the product to be stable and have no errors whatsoever. The first point (resource constraints) doesn't favor the high abstractions that much. Another level of indirection is probably going to add up some overhead on top of your existing resource consumption. The second one also doesn't play well. If your codebase is bursting with obscure category theory concepts or