Skip to main content

Technology stack

The tSM platform is a microservice-based system built to be scalable, flexible, and modular. It leverages Java 21, Kotlin 2, Spring Boot 3, and Spring Cloud and can run on any environment where Java is supported. The platform is designed for both On-Premise and SaaS deployments, with a preference for containerized environments using Docker and Kubernetes, though it can also be deployed on bare metal or virtual machines.

tsm_technology.png

Application Layer

  • Progressive Web Application (PWA): The front end is implemented as a PWA, allowing for cross-platform compatibility (iOS, Android, Web) with offline capabilities.
  • Angular & Nginx: The user interface is built using Angular and served through Nginx or any CDN, ensuring high availability and performance.

Service Layer

  • Stateless Microservices: The backend services are built as stateless microservices using Spring Boot and orchestrated with Spring Cloud.
  • RESTful APIs: All services communicate through RESTful APIs, enabling seamless interaction between microservices and external systems.
  • Extension: The platform supports the development of custom microservices in any language, provided they adhere to the platform's API standards.

Data Layer

  • Relational Databases: Supports PostgreSQL, Oracle, and SQL Server as transactional data stores with JSON support for flexible data storage.
  • Elasticsearch: Provides NoSQL capabilities and enables fast full-text search across large datasets.
  • Apache Kafka: Ensures high-throughput messaging and real-time data streaming. Enables event-driven architecture and integration with external systems.

Infrastructure Layer

  • Runtime: The system runs on OpenJDK 21, leveraging Spring Boot 3 and Spring Cloud for microservice orchestration.
  • Containerization: Docker and Kubernetes are used for containerization and orchestration, supporting both public and private cloud environments.
  • Operating Systems: The platform can run on standard distributions such as Linux and Windows Server.
  • Cloud Platforms: Supports deployment on Kubernetes, OpenShift, or other cloud environments.
  • Externalized Configuration: Configuration is externalized using Spring Cloud Config for easy management and deployment.

Monitoring & Observability

  • Prometheus & Grafana: Used for monitoring metrics and visualizing performance through charts, trends, and alerts.
  • Kibana: Utilized for log aggregation and search, integrated with Elasticsearch.
  • Spring Actuator & Micrometer: Provides system-level metrics and monitoring for each microservice.