Frequently asked questions
- What is API schema evolution?
- API schema evolution is the controlled process of changing request and response structures over time while minimizing disruption for existing clients.
- Why is backward compatibility important in SaaS?
- Backward compatibility lets old clients keep working after changes, which reduces outages, support burden, and forced upgrades.
- How should teams govern schema changes?
- Use a schema registry or contract repository, compatibility checks in CI, versioning rules, and a deprecation policy with clear timelines.
- Should every breaking change create a new API version?
- Not always, but breaking changes should be rare and intentional. If a change cannot be made compatible, a new version is usually the safer path.
- Do Indonesian companies need special API governance?
- The core principles are universal, but Indonesian SaaS teams often benefit from stronger governance because they may serve diverse clients, integrations, and compliance expectations across local and international markets.
Time information: This article was automatically generated on August 9, 2026 at 6:11 AM (Asia/Jakarta, 2026-08-08T23:11:17.421Z).
Why API schema evolution becomes a business problem
In SaaS, an API schema is not just a technical detail. It is a contract between your product and every client, partner, mobile app, internal service, and automation that depends on it. When that contract changes unexpectedly, the cost shows up fast: failed integrations, support tickets, delayed releases, and lost trust.
For Indonesian SaaS teams, this risk is amplified by a common reality: products often need to serve multiple customer types at once, from startups in Jakarta to enterprises with strict procurement and integration requirements. A small schema change that seems harmless in development can break a billing workflow, a WhatsApp automation, or a partner dashboard in production.
That is why schema evolution needs governance. Not bureaucracy, but a repeatable system for deciding what can change, how it changes, and how clients are protected.
What does schema evolution actually mean?
Schema evolution is the controlled change of data structures over time. In API design, that usually means request and response fields, enums, nested objects, event payloads, and validation rules.
Common examples include:
- adding a new optional field
- renaming a field
- changing a field type
- making a required field optional, or the reverse
- splitting one object into two
- removing deprecated properties
Not all changes are equal. Some are backward compatible, meaning older clients continue to work. Others are breaking changes, meaning an existing client may fail or behave incorrectly.
A practical rule: if a change can cause a deployed client to reject a payload, misread a value, or stop functioning, treat it as breaking until proven otherwise.
How do you design for backward compatibility?
Backward compatibility starts with a conservative default: add, do not replace. In mature SaaS systems, the safest schema changes are usually additive.
Good compatibility patterns include:
- adding optional fields with sensible defaults
- accepting unknown fields without failing
- preserving old enum values even after introducing new ones
- keeping response shapes stable for existing endpoints
- using tolerant readers that ignore fields they do not understand
Avoid these patterns unless you are intentionally planning a version break:
- removing fields immediately
- changing field meaning without changing the name
- narrowing accepted values
- switching types, such as string to integer
- reusing a field for a different business concept
If you need to rename a field, keep the old field for a transition period and populate both. If you need to change semantics, introduce a new field with a new name. That is slower than a shortcut, but much cheaper than a production incident.
What should API governance include?
Governance is the operating model that keeps schema evolution safe. It should be lightweight enough to support shipping, but strict enough to prevent accidental breakage.
A strong governance model usually includes these elements:
1. A source of truth for schemas
Store API contracts in a version-controlled repository or schema registry. OpenAPI, JSON Schema, Protobuf, and event schemas all benefit from a single authoritative place where changes are reviewed.
2. Compatibility rules in CI
Automate checks that compare the proposed schema against the previous released version. CI should flag breaking changes before they reach production.
3. Review ownership
Assign clear owners for each API or domain. In practice, this may be a platform team, a product engineering team, or a shared architecture group. At APLINDO, this is often part of SaaS engineering and Fractional CTO engagements: define the rules once, then make them easy for teams to follow.
4. Deprecation policy
Every API should have a documented deprecation path. Say what is changing, why, when it will be removed, and how clients should migrate. For Indonesian enterprise clients, a clear timeline is often as important as the technical fix.
5. Observability
Track which clients still use old fields or versions. You cannot retire what you cannot measure.
Which versioning strategy should you use?
Versioning is a tool, not a strategy by itself. The right choice depends on how often your API changes and how many clients depend on it.
Common approaches include:
- URL versioning, such as
/v1and/v2 - header-based versioning
- field-level evolution without explicit version changes
- event versioning for asynchronous systems
For many SaaS products, the best default is to avoid frequent major version jumps and instead evolve the schema compatibly. Reserve a new version for genuinely breaking changes that cannot be avoided.
If you do introduce a new version, keep the migration path simple. Do not force clients to rewrite everything at once. Run old and new versions in parallel for a defined period, then remove the old one only after usage drops and stakeholders agree.
How can teams prevent accidental breaking changes?
Most breaking changes are not malicious. They happen when teams optimize for local convenience instead of contract safety.
To reduce that risk:
- add schema checks to pull requests
- require API review for changes to public contracts
- maintain examples and consumer tests
- use contract testing for critical integrations
- document field-level compatibility rules
- treat event payloads as public contracts, not internal implementation details
Consumer-driven contract testing is especially useful when multiple teams or external partners rely on the same API. It helps catch cases where the producer thinks a change is safe, but real clients disagree.
For teams building products like billing, messaging, or e-signature workflows, this discipline matters even more. A small payload change can interrupt a payment confirmation, a WhatsApp campaign, or a signing workflow at exactly the wrong time.
What does good schema governance look like in practice?
A good process is visible, repeatable, and boring in the best way.
A typical workflow might look like this:
- A developer proposes a schema change.
- CI checks compatibility against the current released contract.
- A reviewer confirms the change is additive or otherwise safe.
- If the change is breaking, the team creates a migration plan and communicates it.
- Monitoring tracks adoption of the new shape.
- The old shape is deprecated only after usage is low and stakeholders are informed.
This process works for REST APIs, GraphQL schemas, event streams, and internal service contracts. The details differ, but the principle is the same: do not let schema drift become accidental product behavior.
Key takeaways
- API schemas are contracts, and contract changes should be governed, not improvised.
- The safest evolution pattern is additive change with strong backward compatibility.
- Automated compatibility checks in CI can prevent many production incidents.
- Deprecation policies and usage monitoring are essential before removing old fields or versions.
- For Indonesian SaaS teams, clear schema governance helps support diverse clients, integrations, and enterprise expectations.
When should you involve architecture or compliance support?
If your API supports regulated workflows, enterprise integrations, or multi-product platforms, it is worth reviewing schema governance as part of broader architecture and compliance planning. That does not mean every change needs a committee. It means the rules should be clear enough that teams can move quickly without creating hidden risk.
APLINDO, based in Jakarta and operating remote-first, often helps funded startups and enterprises design these controls alongside SaaS engineering, applied AI, Fractional CTO support, and ISO/compliance consulting. In practice, that may include defining schema versioning standards, setting up contract testing, or aligning technical controls with audit-ready documentation. For regulated environments, always validate requirements with a qualified professional audit where needed.
Conclusion
Schema evolution is one of the quietest sources of technical debt in SaaS. Teams rarely notice it when the system is small, but once integrations multiply, every ungoverned change becomes a business risk.
The answer is not to freeze your APIs. It is to evolve them deliberately: keep changes backward compatible when possible, version only when necessary, and make governance part of the engineering workflow. That approach helps SaaS teams in Indonesia and beyond ship faster with fewer surprises.

