Forum Discussion
Architectural Feedback: Is SPFx + Azure Database a viable choice for an internal ticketing system?
Hi everyone,
I am currently evaluating the architecture for a new interdepartmental ticketing system and would love to get your feedback, real-world experiences, or best practices regarding our proposed approach.
Our goal is to centralize and streamline requests, tracking, and communication across various departments within the organization. We want to provide an intuitive interface that integrates seamlessly into our existing workplace (SharePoint Online / Microsoft Teams).
Proposed Architecture
Frontend / UI: Custom web parts developed using SPFx (SharePoint Framework), embedded into SharePoint pages and surfaced in Microsoft Teams.
Backend / Database: Azure Database for PostgreSQL for managing relational data, audit logs, complex ticket statuses, and SLA metrics.
Integration Layer: Custom REST APIs (hosted via Azure Functions / App Service) to handle transactions securely between SPFx and PostgreSQL
Rationale Behind This Choice
User Experience: SPFx provides a native look and feel within Microsoft 365, minimizing user onboarding friction.
Relational Data Complexity: We prefer PostgreSQL over standard SharePoint Lists due to data volume projections, complex relational data models, granular access control requirements per department, and advanced analytics needs.
Questions
- Architecture Viability: Do you consider using SPFx purely as a frontend consumer for external REST APIs connected to PostgreSQL a clean and sustainable pattern long-term?
- SharePoint Lists / Dataverse vs. External DB: Is the added overhead of maintaining a custom API + PostgreSQL in Azure justified, or would you strongly favor Dataverse or native SharePoint Lists for this specific use case?
- Authentication & Security: Any specific tips when securing SPFx calls to Azure API/Functions using Microsoft Entra ID (Azure AD) to ensure proper department-level data segregation?
- Maintenance & Governance: Are there any major maintenance, lifecycle, or performance bottlenecks we should prepare for when maintaining a hybrid SPFx + external DB solution?
Thanks in advance for any insights, lessons learned, or potential red flags!