Core Concepts
While previous chapters focused on what tSM does (its modules and core components), this chapter addresses how tSM is structured under the hood and why it remains so adaptable. These concepts govern how data is represented, how modules connect, and how the platform scales or customizes with minimal coding.
1. Modular Architecture and Scalability
Principle:
tSM is built on a modular microservices foundation, ensuring flexibility, scalability, and fault isolation. Each module operates independently but integrates seamlessly through shared core services like Process Designer and Form Builder.
Key Features:
- Selective Adoption:
Customers can deploy only the necessary modules (e.g., CRM, Order Management) and add more later without major system overhauls. - Independent Scaling:
Each microservice can be scaled independently, allowing, for example, the CRM module to handle higher loads without affecting other modules. - Failure Isolation:
Problems in one module (e.g., Workforce Management) do not cascade to other parts of the system (e.g., Billing or Order Management).
Example:
Adding a new module like Service Inventory does not require redeploying the core platform or modifying other modules.
2. Flexible Entity Model
Principle:
tSM employs an entity-driven design where all business objects (e.g., Customers, Orders, Products) are represented consistently across the platform.
Core Concepts:
- ID + Type Identification:
Each entity is uniquely identified using a combination of ID (typically a UUID) and Type (e.g., Customer, Ticket, Product). - Core vs. Extended Attributes:
Core attributes (e.g., name, status) are consistent across all instances, while extended attributes (e.g., project-specific fields) are managed via Characteristics. - Lifecycle Management:
Entities progress through a defined lifecycle (e.g., Created → Active → Fulfilled), often orchestrated by BPMN processes.
Extensibility:
- Characteristics:
These allow dynamic extension of entities with attributes like “Preferred Contact Method” or “Router Serial Number” without modifying database schemas. - Entity Specifications:
Profiles group characteristics and define forms, ensuring entities are tailored to their subtype (e.g., Retail vs. Wholesale Customer).
3. Configuration and Customization
Principle:
tSM emphasizes configuration-first development while also supporting deeper customizations for unique needs.
Configuration Highlights:
- Widget-Based UI Composition:
Forms and pages are built using reusable widgets that interact dynamically with microservices. - JSON-Driven Customization:
Configuration data, including forms and workflows, is stored as JSON Schema, enabling easy extension and integration. - Process Engine Integration:
The Process Designer integrates with forms to automate workflows and backend processes.
Customization Features:
- Microservice Flexibility:
Developers can create new microservices or extend existing ones using the preferred tSM stack (e.g., Spring Boot, Kotlin, Kafka). - UI Extensions:
Custom widgets can be dynamically added to the user interface to meet specific operational needs. - Integration with Legacy Systems:
tSM integrates with external applications via Public APIs, thin proxies, or specialized connectors (e.g., NetBoxClient).
4. Process Automation
Principle:
tSM's Process Designer enables robust automation of workflows across the platform.
Capabilities:
- Visual Workflow Design:
Users can design and execute workflows visually, ensuring clarity and efficiency. - Automatic and Manual Tasks:
Automate routine actions while assigning critical tasks to specific users or teams. - BPMN and tSM SpEL Integration:
Define dynamic decision logic and actions using tSM Expression Language.
Example:
Automating customer onboarding from "New Lead" to "Active Customer" with notifications and task assignments along the way.
5. Comprehensive Integration
Principle:
tSM supports seamless integration with third-party systems and external APIs to ensure interoperability.
Integration Tools:
- Connectors:
Includes general-purpose connectors (REST, SOAP) and specialized options (e.g., JIRA, Microsoft Teams). - Public API:
A standardized interface for interacting with external systems, leveraging consistent ID + Type references. - Dynamic Data Handling:
Entities can interact with live data sources, updating in real-time as processes execute.
Example:
Integrating a CRM with a third-party analytics tool for real-time insights.
6. TM Forum Compatibility
Principle:
tSM aligns with TM Forum standards (Open APIs, eTOM, SID) to enhance global interoperability.
Advantages:
- Standardized Data Structures:
Consistent representation of entities like Product, Resource, and TroubleTicket simplifies data exchange. - Future-Proof Design:
Adopting updated TMF standards with minimal disruption. - Interoperability:
Systems using TMF standards can easily integrate with tSM, reducing the need for custom mappings.
7. Dynamic Configuration Management
Principle:
tSM enables logical grouping, versioning, and referencing of configurations using modules, configTypes, and tags.
Features:
- Modules:
High-level grouping of functionalities (e.g., CRM, Ticketing). - ConfigTypes:
Granular classification for business-specific functionality (e.g., Fiber Construction Setup). - Tags:
Lightweight labels for configurations (e.g., "2024-Q1 Release"), aiding version control and search.
Example:
Applying specific configurations for "Enterprise Orders" while maintaining separate settings for "Retail Orders."
8. Out-of-the-Box Services
Principle:
tSM includes prebuilt services to accelerate deployments and reduce development overhead.
Services:
- ListingService:
Efficient data retrieval with support for Elasticsearch and TSM Query Language (TQL). - ConfigService:
Manages configurations, including forms, processes, and entity specifications. - User/Role Services:
Centralized user management with Single Sign-On (SSO) support.
Summary
By understanding these underlying principles, you can see how tSM supports rapid configuration-driven deployments, scalable operations, and the flexibility to evolve or add custom modules as business needs change.