Build a Server Action Portal (Part 1—the Problem)
Client-server distributed systems are common in traditional software development, but web programming for organizations with multiple services in the cloud involves a much more distributed solution.
Things are syncing more than ever. The problem space of various services is also the solution space—the web is a great place to build something that's all over the world, not just in terms of CDN delivery, but also in terms of actors working together to provide a cloud of functionality.
The Dispersed Ecosystem
Organizations have their data at multiple services. Each service potentially interacts with multiple other services, and each functional category has specific requirements, such as authentication and permissions.
Messy diagram: one of my client's subscribed web services—it has exploded over the past 10 years.
Common categories of web services:
- Commerce (inventory, shopping, ordering, EDI)
- Communication (contacts, newsletters)
- Project Management
- Accounting
Furthermore, services for web programming are themselves more distributed. Common categories of these services include:
- Provision (DNS, hosting, email, security)
- Data (database, assets, content management)
- Design
- Development (IDE, extensions)
- Automation (workflows, scheduling)
- Traffic (SEO, indexing, feeds)
While a single-source-of-truth and consolidation of services are objectives, the reality is not as clean as a monolithic design from the ground-up would be, because
- Any given client has unique requirements imposed by their industry and customers.
- The value of preferred services can outweigh the advantage of a single-source-of-truth.
- Clients have historical, practical, and budgetary reasons to have systems that do not fit a design preference.
The Dynamic Ecosystem
Web services required by an organization and by the web dev are not only changing, but the evolution of web technologies also causes a ripple of required changes for each upgrade or new service.
As technology spins faster in a world of subscribed services, the top requirements for a distributed web solution are:
- flexibility for change,
- ease of change,
- data scalability,
- minimized cost, and
- minimized burden (manual data manipulation and learning curve).
Let's find the best way to approach this!
(Stay tuned for Part 2.)
#clientportal #saas