SaaS Headless CMS and Service Oriented Application Objectives and Advantages

This blog post describes some of the objectives and advantages of SaaS headless content management systems and service-oriented architectures in general.

Of course anything can be implemented well or poorly, and it is possible to build any solution on any platform. SaaS headless CMS systems endeavor to provide the following advantages relative to other content management systems:

  • Orientation: While vendors focus on APIs, beyond vendor-specific URL paths and semantics including URL paths, query parameters, as response formats, because all service endpoints represent all data as JSON, customer applications focus on data rather than vendor APIs.
  • Focus: Service-oriented architectures allow each vendor to focus on their core competency, such as content management, search, analytics, experience management, engagement automation, commerce, or otherwise. Customers focus on their solutions that integrate the required services from their various vendors of preference.
  • Abstraction: Separating concerns requires abstracting interfaces, which allows a component model for application assembly rather than an integrated, monolithic stack that may expose services around it.
  • Consistency: Integrating with applications that expose JSON HTTPS APIs and webhooks with simple UI extension frameworks where needed reduces vendor-specific developer and administrator knowledge required to implement and maintain the solution.
  • Choice: Customers determine the SaaS software vendors, implementation technologies, infrastructure platforms, hosting partners, and other infrastructure components appropriate for their solutions. I prefer ASP.NET Core with WebAssembly, while many developers prefer Jamstack.
  • Simplification: Simpler solutions present lower risks. Separating a web solution into functions allows services that follow Single Responsibility Principle. Merging subsystems properly reduces complexity and risk.
  • Cleanliness: Service-oriented systems have modern implementations. Clean architectures lead to higher quality solutions that are more efficient to implement, maintain, extend, and replace when needed.
  • Maintainability: SaaS reduces customer responsibility by requiring the CMS vendor to meet service level agreements for hosted content management environments and content delivery services. Rather than building against or on top of shifting platforms and SDKs, customers implement applications next to the vendors applications accessing HTTPS services with stable JSON formats, avoiding the need to synchronize content delivery builds with content management infrastructure.
  • Scalability: Separating responsibilities allows tuning and scaling each component of the architecture individually.
  • Independence: Each component of the solution operates independently from the others, retrieving, processing, and returning data as needed.
  • Performance: By separating services from presentation, headless allows independent management including provisioning, deployment, caching, and scaling of services including static files, HTTPS content delivery services, and media content, sometimes including application services such as NodeJS or ASP.NET for server-side logic.
  • Agility: By decoupling presentation (HTML) from both data (services) and logic (JavaScript, HTTPS services), headless improves developer productivity while supporting continuous integration with frequent delivery cycles. Headless can significantly reduce the time it takes for solutions and new features to reach the web.
  • Administration: Headless CMS vendors have responsibility for provisioning, scaling, upgrading, and otherwise administering and hosting infrastructure and software including a browser-based content management user interface, content (text) CDN, and media (binary) CDN.
  • Features: Because headless CMS vendors typically upgrade client solutions without downtime, new CMS features can appear after vendor testing cycles are complete, without investment by CMS customers.
  • Technologies: Customers can choose their preferred platforms, technologies, application platforms, and providers for each service.
  • Integration: Headless CMS applies modern web architecture for application integration. CMS vendors provide solutions for integrating with major service providers and other partners. External applications use HTTPS content management and content delivery services. Extensible CMS user interfaces allow custom applications that retrieve data from external systems to present, manage, and reference from the CMS. Headless CMS can trigger webhooks that pass event data to other systems.
  • Testing and Troubleshooting: Separating concerns simplifies testing and troubleshooting.
  • Responsibility: SaaS places responsibility with the appropriate parties and allows replacing components that serve specific needs.
  • Accountability: In addition to reducing customer responsibility, service-oriented architectures provide clear accountability in problem scenarios.
  • Technical Credit: Moving to SaaS can help not just to eliminate technical debt, but to build technical credit towards future solutions.
  • ROI and TCO: Software solutions should always work to increase return on investment and reduce total cost of ownership.
  • Omnichannel: All CMS can be omnichannel, and most CMS implementations include web solutions. Headless focuses on data structures and APIs rather than page generation, increasing the focus on data as separate from logic, presentation, and use.
  • Capitalization: Service-oriented architectures allow customers to leverage technologies such as Jamstack and the tremendous value available in the cloud by assembling applications that orchestrate services rather than building applications on a shifting platform.
  • Reliability: Many of the factors outlined here, most specifically separation of concerns, leads to greater reliability.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: