Every developer knows the feeling. You're deep into a new feature, and you need a list of countries for a dropdown menu. The "quick and dirty" solution is tempting: find a list online, paste it into a file, and hardcode it into your application. Problem solved... for now.
Fast forward six months. A new microservice needs the same list. Another team copies your file. A third service needs currency codes, so they create a separate list. Suddenly, your organization has a dozen different, slightly-out-of-sync lists of "static" data scattered across its codebase.
This is the hidden chaos of reference data management. But there's a better way. It's time to stop treating reference data as a static asset and start treating it as a dynamic, centralized service.
Before we dive into the solution, let's establish a clear definition.
Reference data is the foundational, stable data used to classify and add context to other data within your systems. It's the "master data" that rarely changes but is essential for business operations.
Common examples include:
This data seems simple, but managing it inefficiently creates significant technical debt and business risk.
Hardcoding a list of countries or keeping a CSV in a repository is a solution that doesn't scale. The "do-it-yourself" approach to reference data quickly snowballs into a maintenance nightmare with hidden costs.
The solution is to abstract away the complexity. Just as we use Stripe for payments or Twilio for communications, we should use a dedicated service for data. This is the core principle of Data as a Service (DaaS).
By treating reference data as a service, you centralize it behind a simple, reliable API. Instead of embedding static lists in your code, you make a quick API call to a single source of truth.
This is exactly what we built at reference.do.
With a DaaS approach, fetching a list of all official ISO 4217 currencies becomes a single, simple API call.
import { Do } from '@do-inc/sdk';
const an = new Do(process.env.DO_API_KEY);
// Get a list of all ISO 4217 currencies
const currencies = await an.reference.get('iso-4217');
console.log(currencies);
/*
=> [
{ "code": "USD", "name": "United States Dollar", "symbol": "$" },
{ "code": "EUR", "name": "Euro", "symbol": "€" },
{ "code": "JPY", "name": "Japanese Yen", "symbol": "¥" },
...
]
*/
The benefits are immediate and transformative:
The ad-hoc management of reference data is a relic of a bygone era. In today's world of microservices, distributed teams, and rapid development cycles, a centralized, API-driven approach isn't just a "nice-to-have"—it's a necessity for scalable and robust architecture.
By embracing Data as a Service, you eliminate a whole class of potential bugs, streamline your data management processes, and empower your developers to build faster.
Ready to establish your single source of truth? Stop managing static datasets in every application. Visit reference.do to get started and make your first API call in minutes. Get your data on demand.