# IDs

Published articles for IDs.

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

## RBP Tracker: Counting the CVE IDs the CVE List Cannot See

DevFeed: [RBP Tracker: Counting the CVE IDs the CVE List Cannot See](<https://devfeed.tech/articles/rbp-tracker-counting-the-cve-ids-the-cve-list-cannot-see-27481.md>)

Original publisher: [Read original article](<https://jerrygamblin.com/2026/09/14/rbp-tracker-counting-the-cve-ids-the-cve-list-cannot-see/>)

Author: jgamblin

Published: 2026-09-14T14:16:42Z

Content type: article

Language: en

Sources: [Jerry Gamblin](<https://devfeed.tech/sources/jerry-gamblin.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [NVD](<https://devfeed.tech/topics/nvd.md>), [API](<https://devfeed.tech/topics/api.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cve](<https://devfeed.tech/tags/cve.md>), [cve-list](<https://devfeed.tech/tags/cve-list.md>), [data](<https://devfeed.tech/tags/data.md>), [ids](<https://devfeed.tech/tags/ids.md>), [list](<https://devfeed.tech/tags/list.md>), [nvd](<https://devfeed.tech/tags/nvd.md>), [report](<https://devfeed.tech/tags/report.md>), [scanner](<https://devfeed.tech/tags/scanner.md>), [source](<https://devfeed.tech/tags/source.md>), [state](<https://devfeed.tech/tags/state.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

The article examines a corrected RogoLabs tracker for Reserved but Public CVE IDs. It explains that the CVE Services API returns 404 for reserved IDs, while a separate unauthenticated endpoint reveals their RESERVED state. The tracker lists IDs from public advisory feeds and describes how reserved records are absent from the bulk CVE List until publication.

### Source excerpt

A new RogoLabs site lists Reserved but Public CVE IDs: 2,315 of them on September 14, drawn from 17 public advisory feeds, refreshed every six hours, and held a week before they appear. The first version of this tracker reported that none of the CVE IDs it found existed in the CVE List, in any ... Read more

## Why didn't ReadDirectoryChangesW provide a way to correlate the two sides of a rename operation?

DevFeed: [Why didn't ReadDirectoryChangesW provide a way to correlate the two sides of a rename operation?](<https://devfeed.tech/articles/why-didn-t-read-directory-changesw-provide-a-way-to-correlate-the-two-sides-of-a-rename-operation-21762.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/oldnewthing/20260914-00/?p=112696>)

Author: Raymond Chen

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

Content type: article

Language: en

Sources: [Raymond Chen](<https://devfeed.tech/sources/raymond-chen.md>)

Topics: [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [events](<https://devfeed.tech/tags/events.md>), [files](<https://devfeed.tech/tags/files.md>), [ids](<https://devfeed.tech/tags/ids.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [information](<https://devfeed.tech/tags/information.md>), [old-new-thing](<https://devfeed.tech/tags/old-new-thing.md>), [other](<https://devfeed.tech/tags/other.md>), [post](<https://devfeed.tech/tags/post.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The article explains why ReadDirectoryChangesW did not explicitly provide a mechanism for correlating the two events generated by a file rename. It suggests that the events were expected to occur consecutively, but that assumption was never documented and could fail when concurrent renames or disk activity interleave events. File IDs provide the information needed to correlate the two sides reliably.

### Source excerpt

Perhaps it wasn't necessary, or perhaps it didn't occur to them that this a problem. The post Why didn't <CODE>ReadDirectoryChangesW</CODE> provide a way to correlate the two sides of a rename operation? appeared first on The Old New Thing.

## From Intent to Reality: Driving pyATS Tests from NetBox Against a CML2 Fabric

DevFeed: [From Intent to Reality: Driving pyATS Tests from NetBox Against a CML2 Fabric](<https://devfeed.tech/articles/from-intent-to-reality-driving-pyats-tests-from-netbox-against-a-cml2-fabric-30871.md>)

Original publisher: [Read original article](<https://brent.leekley.me/blog/netbox-intent/>)

Author: Brent Leekley

Published: 2026-06-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [brent.leekley.me blog](<https://devfeed.tech/sources/brent-leekley-me-blog.md>)

Topics: [NetBox](<https://devfeed.tech/topics/netbox.md>), [Network](<https://devfeed.tech/topics/network.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [data](<https://devfeed.tech/topics/data.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [cisco-modeling-labs](<https://devfeed.tech/tags/cisco-modeling-labs.md>), [cml](<https://devfeed.tech/tags/cml.md>), [cml2](<https://devfeed.tech/tags/cml2.md>), [custom-fields](<https://devfeed.tech/tags/custom-fields.md>), [genie](<https://devfeed.tech/tags/genie.md>), [ids](<https://devfeed.tech/tags/ids.md>), [intent-based-networking](<https://devfeed.tech/tags/intent-based-networking.md>), [netbox](<https://devfeed.tech/tags/netbox.md>), [network](<https://devfeed.tech/tags/network.md>), [network-automation](<https://devfeed.tech/tags/network-automation.md>), [network-testing](<https://devfeed.tech/tags/network-testing.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [pyats](<https://devfeed.tech/tags/pyats.md>), [pynetbox](<https://devfeed.tech/tags/pynetbox.md>), [router-id](<https://devfeed.tech/tags/router-id.md>), [source-of-truth](<https://devfeed.tech/tags/source-of-truth.md>), [spine-leaf](<https://devfeed.tech/tags/spine-leaf.md>), [structured](<https://devfeed.tech/tags/structured.md>), [testbed](<https://devfeed.tech/tags/testbed.md>)

### AI overview

This tutorial shows how to store declared OSPF router-IDs in NetBox and use Cisco pyATS to compare them with the router-IDs on a live CML2 spine-leaf fabric. The comparison turns network intent validation into a pass-or-fail test.

### Source excerpt

NetBox holds the intent (declared OSPF router-IDs), a CML2 spine-leaf is the network under test, and pyATS is the judge. Close the loop and prove the live network matches what you said it should be, with real pass and fail output.

## Semantic IDs: Product Understanding at Scale

DevFeed: [Semantic IDs: Product Understanding at Scale](<https://devfeed.tech/articles/semantic-ids-product-understanding-at-scale-20110.md>)

Original publisher: [Read original article](<https://tech.instacart.com/semantic-ids-product-understanding-at-scale-5283e0288f5a?source=rss----587883b5d2ee---4>)

Author: Shrikar Archak

Published: 2026-06-02T16:58:00Z

Content type: article

Language: en

Sources: [Instacart](<https://devfeed.tech/sources/instacart.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [data](<https://devfeed.tech/topics/data.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [embedding](<https://devfeed.tech/tags/embedding.md>), [ids](<https://devfeed.tech/tags/ids.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [product](<https://devfeed.tech/tags/product.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommender-systems](<https://devfeed.tech/tags/recommender-systems.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [scale](<https://devfeed.tech/tags/scale.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

Instacart describes how it built semantic IDs to capture relationships among grocery products that a hierarchical taxonomy misses. The approach uses product embeddings, residual vector quantization, catalog structure, contrastive training, and separate precision and discovery strategies to address cold-start products, sparse categories, and catalog-quality issues.

### Source excerpt

Key Contributors: Shrikar Archak, Karuna Ahuja, Soroush Sobhkhiz, Marko Avdalovic, Xiyu Wang, JiChao Zhang, Hao Yan, Chris Hartley Introduction Operating a grocery catalog at Instacart's scale means managing millions of products across thousands of categories. Every product is assigned to a category in our hierarchical taxonomy like "Dairy > Cheese > Parmesan". These categories provide broad classification, but they miss the connections that drive how customers actually shop. For example, a customer is building a cheese board. They've added Parmigiano Reggiano, and now they need accompaniments. Our taxonomy puts it in "Dairy > Cheese > Parmesan," so a category-based system can suggest other parmesan cheeses. But it can't connect them to the Castelvetrano olives in Pantry > Condiments > Olives, the olive tapenade in Deli > Olives Dips and Spreads, or the crudité and pre-assembled cheese tray in Deli > Prepared Meals > Party Trays. These products live in completely different branches of the catalog, with no shared ancestor below "Food." But any customer would tell you they belong together. This cross-category blindness shows up in three ways. Cold start: new products arrive with zero purchase history. We can assign them to the right category, but a category alone can't connect them to the products customers would actually consider alongside them, so they stay invisible. Tail category coverage: recommendation models learn from volume, so they skew toward popular grocery staples. Products in sparse categories lack the interaction data to surface, and the taxonomy gives the model no bridge to related items in other branches. Catalog quality at scale: with millions of products, mislabeling is inevitable -- a protein bar filed under "Candy," a sparkling water under "Soda." A rigid tree has no way to flag these because the only signal is the label itself. In this post, we walk through how we built semantic IDs at Instacart to address these problems: the embedding choices, th

## A complaint urges Google to block an Android policy change affecting Canadian developers and users

DevFeed: [A complaint urges Google to block an Android policy change affecting Canadian developers and users](<https://devfeed.tech/articles/keep-android-open-32250.md>)

Original publisher: [Read original article](<https://publicobject.com/2026/02/21/keep-android-open/>)

Author: Jesse Wilson

Published: 2026-02-21T12:29:24Z

Content type: opinion

Language: en

Sources: [Public Object](<https://devfeed.tech/sources/public-object.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Google](<https://devfeed.tech/topics/google.md>), [digital](<https://devfeed.tech/topics/digital.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [canada](<https://devfeed.tech/tags/canada.md>), [competition](<https://devfeed.tech/tags/competition.md>), [developers](<https://devfeed.tech/tags/developers.md>), [distribution](<https://devfeed.tech/tags/distribution.md>), [fees](<https://devfeed.tech/tags/fees.md>), [google](<https://devfeed.tech/tags/google.md>), [ids](<https://devfeed.tech/tags/ids.md>), [open](<https://devfeed.tech/tags/open.md>), [policy](<https://devfeed.tech/tags/policy.md>)

### AI overview

The article reproduces a complaint to the Competition Bureau of Canada about a Google policy change for Android. It argues that requiring Canadian developers to submit identification and pay fees could reduce the openness of the Android platform and give Google greater control over software use and distribution.

### Source excerpt

Google is building a digital lock into Android. It's a very bad idea and I hate it. The excellent organizers at keepandroidopen.org encouraged me to complain to the Competition Bureau of Canada. What I sent wasn't well edited but it captures my anger. Please send your own! I found

## Crafting a Perfect Product Catalog

DevFeed: [Crafting a Perfect Product Catalog](<https://devfeed.tech/articles/crafting-a-perfect-product-catalog-38730.md>)

Original publisher: [Read original article](<https://blog.developer.bazaarvoice.com/2026/01/29/crafting-a-perfect-product-catalog/>)

Author: Shashank Khatri

Published: 2026-01-29T11:33:26Z

Content type: article

Language: en

Sources: [Bazaarvoice](<https://devfeed.tech/sources/bazaarvoice.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [clients](<https://devfeed.tech/topics/clients.md>), [trust](<https://devfeed.tech/topics/trust.md>), [navigation](<https://devfeed.tech/topics/navigation.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [categories](<https://devfeed.tech/tags/categories.md>), [conversations-api](<https://devfeed.tech/tags/conversations-api.md>), [data](<https://devfeed.tech/tags/data.md>), [file](<https://devfeed.tech/tags/file.md>), [format](<https://devfeed.tech/tags/format.md>), [ids](<https://devfeed.tech/tags/ids.md>), [integration](<https://devfeed.tech/tags/integration.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [product](<https://devfeed.tech/tags/product.md>), [product-catalog](<https://devfeed.tech/tags/product-catalog.md>), [reviews](<https://devfeed.tech/tags/reviews.md>), [source-of-truth](<https://devfeed.tech/tags/source-of-truth.md>), [ugc](<https://devfeed.tech/tags/ugc.md>)

### AI overview

This Bazaarvoice post presents best practices for maintaining product catalogs used to manage and display user-generated content such as ratings and reviews. It covers precise product names, consistent category information, and naming conventions for product and category identifiers to support integration, content submission, navigation, and accurate review associations.

### Source excerpt

Your product catalog is the definitive source of truth for your online presence, especially when managing User-Generated Content (UGC) like ratings and reviews. For Bazaarvoice clients, a meticulously maintained catalog is vital for seamless integration and flawless display. This post explores three key best practices--from precise product naming and consistent category data to optimal naming conventions--that will unlock the full potential of your UGC program, drive trust, and boost conversions.

## Choosing a Postgres Primary Key

DevFeed: [Choosing a Postgres Primary Key](<https://devfeed.tech/articles/choosing-a-postgres-primary-key-339.md>)

Original publisher: [Read original article](<https://supabase.com/blog/choosing-a-postgres-primary-key>)

Author: Victor

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

Content type: article

Language: en

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

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

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [database](<https://devfeed.tech/tags/database.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [ids](<https://devfeed.tech/tags/ids.md>), [postgres](<https://devfeed.tech/tags/postgres.md>)

### AI overview

This article examines how to choose a Postgres primary key, comparing natural and surrogate keys, numeric identifiers, random values, and UUIDs. It discusses identifier trade-offs and using Postgres sequences for auto-incrementing integer keys.

### Source excerpt

Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out

## API and Webhooks Logs Are Generally Available

DevFeed: [API and Webhooks Logs Are Generally Available](<https://devfeed.tech/articles/api-and-webhooks-logs-are-generally-available-15535.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/api-and-webhooks-logs-are-generally-available>)

Author: Chris Lopez

Published: 2022-02-09T18:00:00Z

Content type: release

Language: en

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

Topics: [API](<https://devfeed.tech/topics/api.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [audit trail](<https://devfeed.tech/topics/audit-trail.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [audit-trail](<https://devfeed.tech/tags/audit-trail.md>), [http](<https://devfeed.tech/tags/http.md>), [ids](<https://devfeed.tech/tags/ids.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [logs](<https://devfeed.tech/tags/logs.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [payload](<https://devfeed.tech/tags/payload.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [slack](<https://devfeed.tech/tags/slack.md>), [versioning](<https://devfeed.tech/tags/versioning.md>), [webhooks](<https://devfeed.tech/tags/webhooks.md>)

### AI overview

Square announces the general availability of API Logs, adding Webhook Event Logs to help developers monitor API usage, inspect requests and responses, track API and SDK versions, and debug integration issues. Webhook event logs are retained for 28 days.

### Source excerpt

Monitor usage, versioning, and partner apps inside the developer dashboard

## See your location ID without the API call

DevFeed: [See your location ID without the API call](<https://devfeed.tech/articles/see-your-location-id-without-the-api-call-15844.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/see-your-location-id-without-the-api-call>)

Author: Tristan Sokol

Published: 2017-10-11T17:57:13Z

Content type: release

Language: en

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

Topics: [internal developer portal](<https://devfeed.tech/topics/internal-developer-portal.md>), [API](<https://devfeed.tech/topics/api.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [developer-portal](<https://devfeed.tech/tags/developer-portal.md>), [developers](<https://devfeed.tech/tags/developers.md>), [ids](<https://devfeed.tech/tags/ids.md>), [operations](<https://devfeed.tech/tags/operations.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

Square's refreshed Developer Portal lets developers view an application's location ID directly, avoiding a one-off List Locations API call.

### Source excerpt

Our latest refresh of the Square Developer Portal includes locations IDs

## Generating Sessions Ids

DevFeed: [Generating Sessions Ids](<https://devfeed.tech/articles/generating-sessions-ids-24931.md>)

Original publisher: [Read original article](<https://codeahoy.com/2016/04/13/generating-session-ids/>)

Author: umer

Published: 2016-04-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Code Ahoy - Articles](<https://devfeed.tech/sources/code-ahoy-articles.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [attacks](<https://devfeed.tech/tags/attacks.md>), [browser](<https://devfeed.tech/tags/browser.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [http](<https://devfeed.tech/tags/http.md>), [ids](<https://devfeed.tech/tags/ids.md>), [rest](<https://devfeed.tech/tags/rest.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>), [stateless](<https://devfeed.tech/tags/stateless.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This tutorial explains how session IDs let servers identify users over stateless HTTP. It describes their required properties--uniqueness, limited lifetime, and unpredictability--and discusses random session IDs, entropy, cookies, and security considerations.

### Source excerpt

Session Id's are unique, short-lived numbers that servers assign to users when they log in (or visit) so they can remember (or track) users for the duration of their sessions. Servers use session Id's to remember users because the underlying protocol, HTTP, is stateless. Once they receive session Id from the server, users send it back in the following requests to identify themselves. For example, when you login to a website, the server assigns you a session Id and sends it to your browser wrapped in a cookie. The browser automatically sends the cookie back in the subsequent requests so the server knows who is making the request. Almost all web frameworks I have worked with have built-in support for sessions: they generate and assign Id's under the hood. The only time I had to generate session Id's manually was when I was building a REST application (game service) that needed a custom way to identify users and sessions. This blog post is the result of research I had to do to build that feature. I would highly recommend not rolling out your custom session handling code, unless you absolutely have to. Session Ids are unique, transient and non-guessable Session Id's must be unique across all users. Can you imagine two people getting assigned the same Social Security number? That would be a disaster. Session Id's have 'best-by' date and they timeout after a certain period. If they didn't, a hacker could steal and use them indefinitely. Generally the expiry period ranges from minutes to weeks. High-risk applications expire session Ids more frequently than the low risk ones to minimize the attack window. Session Id's are not guessable. A bad example would be an algorithm that generates sequential session Id's. Hackers can easily identify patterns and hijack user sessions. You can generate and assign session Id's to users in many different ways. I'll discuss three common methods below. 1. Random session Ids Random session Id's have no meaning by virtue of being completely r

## Generating unique IDs: an easy and reliable way

DevFeed: [Generating unique IDs: an easy and reliable way](<https://devfeed.tech/articles/generating-unique-ids-an-easy-and-reliable-way-20690.md>)

Original publisher: [Read original article](<http://antirez.com/news/99>)

Published: 2015-11-21T14:47:01Z

Content type: tutorial

Language: en

Sources: [Antirez](<https://devfeed.tech/sources/antirez.md>)

Topics: [V8](<https://devfeed.tech/topics/v8.md>), [math](<https://devfeed.tech/topics/math.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [ids](<https://devfeed.tech/tags/ids.md>), [math](<https://devfeed.tech/tags/math.md>), [processes](<https://devfeed.tech/tags/processes.md>), [v8](<https://devfeed.tech/tags/v8.md>)

### AI overview

The article discusses weaknesses in V8's Math.random() implementation and presents generating uniformly distributed random numbers from a sufficiently large range as a practical way to make ID collisions highly unlikely. It contrasts this approach with stateful counters and process-specific prefixes.

### Source excerpt

Two days ago Mike Malone published an interesting post on Medium about the V8 implementation of Math.random(), and how weak is the quality of the PRNG used: http://bit.ly/1SPDraN. The post was one of the top news on Hacker News today. It's pretty clear and informative from the point of view of how Math.random() is broken and how should be fixed, so I've nothing to add to the matter itself. But since the author discovered the weakness of the PRNG in the context of generating large probably-non-colliding IDs, I want to share with you an alternative that I used multiple times in the past, which is fast and extremely reliable. The problem of unique IDs - - - So, in theory, if you want to generate unique IDs you need to store some state that makes sure an ID is never repeated. In the trivial case you may use just a simple counter. However the previous ID generated must be stored in a consistent way. In case of restart of the system, it should never happen that the same ID is generated again because our stored counter was not correctly persisted on disk. If we want to generate unique IDs using multiple processes, each process needs to make sure to prepend its IDs with some process-specific prefix that will never collide with another process prefix. This can be complex to manage as well. The simple fact of having to store in a reliable way the old ID is very time consuming when we want to generate an high number of IDs per second. Fortunately there is a simple solution. Generate a random number in a range between 0 and N, with N so big that the probability of collisions is so small to be, for every practical application, irrelevant. This works if the number we generate is uniformly distributed between 0 and N. If this prerequisite is true we can use the birthday paradox in order to calculate the probability of collisions. By using enough bits it's trivial to make the probability of a collision billions of times less likely than an asteroid centering the Earth, even if we g

## New playlist representations

DevFeed: [New playlist representations](<https://devfeed.tech/articles/new-playlist-representations-2095.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//new_playlist_representations>)

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

Content type: release

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [api](<https://devfeed.tech/tags/api.md>), [data](<https://devfeed.tech/tags/data.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [ids](<https://devfeed.tech/tags/ids.md>), [request](<https://devfeed.tech/tags/request.md>), [resource](<https://devfeed.tech/tags/resource.md>), [timeout](<https://devfeed.tech/tags/timeout.md>)

### AI overview

SoundCloud introduces two more efficient playlist representations for large playlists: one returns only the playlist, and the other returns the playlist with track IDs instead of full track metadata. Applications can fetch additional track details separately and improve responsiveness.

### Source excerpt

Requests for playlists have always included the full track objects contained within. This representation may be convenient for playlists...

## Why Object IDs & Primary Keys Are Implementation Details

DevFeed: [Why Object IDs & Primary Keys Are Implementation Details](<https://devfeed.tech/articles/why-object-ids-primary-keys-are-implementation-details-33393.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2012/03/24/why-object-ids-primary-keys-are>)

Published: 2012-03-24T00:00:00Z

Content type: opinion

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [implementation](<https://devfeed.tech/topics/implementation.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [Apache Cassandra](<https://devfeed.tech/topics/cassandra.md>)

Tags: [business-logic](<https://devfeed.tech/tags/business-logic.md>), [cassandra](<https://devfeed.tech/tags/cassandra.md>), [database](<https://devfeed.tech/tags/database.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [ids](<https://devfeed.tech/tags/ids.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [object](<https://devfeed.tech/tags/object.md>)

### AI overview

The article argues that object identifiers and primary keys should be treated as implementation details and hidden from the business domain when possible. It explains that tightly coupling data logic to business logic can force application changes when database requirements evolve, such as changing an identifier type or switching databases.

### Source excerpt

Recently I wrote a post about a project that I was working on with an abstracted data layer concept that can work in the context of either relational or document data store. In retrospect I think I brushed too quickly over the details of why I think object identifiers (and primary keys) are a part of the implementation that should be hidden, when possible. To explain what I mean I'll use a surreal-world story.