Intino's architectural vision is brought to life using IntelliJ IDEA[1] as the integrated development environment (IDE) and Java as the primary programming language. This setup allows developers to work within a powerful and flexible environment. Intino acts as a software factory, automating developer workflows and streamlining the system's development process through a custom IntelliJ plugin. This plugin automates various tasks, such as project configuration, module management, and deployment strategies.

By leveraging the plugin's features, developers can quickly set up, build, and maintain a modular distributed system aligned with the architectural vision. This approach reduces the complexity of manual configuration, providing a seamless workflow that integrates coding, testing, and deployment into a unified process. Thus, Intino empowers teams to focus on crafting business logic and domain-specific functionality while the automated tools handle much of the infrastructure work.

  1. Setup the environment:
    1. Install IntelliJ: Download and install the IntelliJ IDEA IDE, ensuring it's the most recent version to access the latest features and enhancements.
    2. Set Up Java Development Kit (JDK): Install the appropriate version of the Java Development Kit (JDK) required for your project and configure IntelliJ to recognize it as the primary development environment.
    3. Install the Intino Plugin: Access IntelliJ's plugin marketplace and search for the Intino plugin. Install and enable it to gain access to features that automate the development workflow, such as project setup and module management.
  2. Create a New Project: Start by creating a new project in IntelliJ, which will represent the entire distributed system. Ensure that the project structure is flexible enough to accommodate multiple modules.
  3. Define Archetype: Make sure each module follows the project's archetype, ensuring consistent organization of code, resources, and configurations. This will help keep the entire system modular, maintainable, and scalable.
  4. Define Modules for Each Service: Each module will correspond to a specific service (e.g., Data Hub, Federation, BI Tools, and Business Units). Configure each module to contain the necessary code, resources, and configurations specific to that service.
    1. Datahub Module:. Include all code and configurations related to data ingestion, transformation, and distribution. This module will interact with external data sources and handle the centralized data processing pipeline.
    2. Amidas Module: This module represents the federation layer for managing user registration and identity. It includes the configurations for secure user access and compliance with data security standards.
    3. Sumus Module: Incorporate tools and logic needed for data analysis and visualization, enabling users to transform raw data into insights.
    4. Business Units Module: Each business unit can be a submodule, with its own logic and specific dependencies. These modules should align with the business functions they represent.
  5. Configure Dependencies:. Use the project's configuration language to specify dependencies, ensuring that each module has access to the required libraries and services.
  6. Deployment Strategies:. In each module's build configuration, define how the resulting artifacts will be published and specify the deployment environments or servers. This ensures a consistent, reliable deployment process.