The ultimate goal of Intino is to develop a distributed system following big data architecture principles. Every distributed system should begin with a clear definition of the system and its structure. By doing it, organizations can lay the groundwork for a successful distributed system. This approach ensures that all subsequent development aligns with the desired architecture, leading to a cohesive and maintainable solution.

Intino's approach to developing distributed systems is grounded in the principles of service-oriented architecture (SOA), where the system is structured as a collection of services that communicate through well-defined interfaces. These services are designed to be loosely coupled yet functionally cohesive, allowing for greater flexibility and scalability. In line with this architectural strategy, Intino provides a series of frameworks that serve as foundational tools for extending functionality across its distributed system architecture. These frameworks are inherently extensible, offering a base structure and a suite of functionalities that specific modules or business units can customize and build upon according to their unique requirements. This approach not only facilitates the modular development of services but also enhances the ability of the system to integrate and adapt to changing business needs, thereby embodying the core characteristics of SOA.

The essential services that every distributed system should include are:

  • Federation: supported by Amidas framework, this service provides the infrastructure and tools necessary for implementing robust federation services, including user registration, authentication, and authorization processes.
  • Analytics: supported by Sumus framework, this service is specifically designed to handle the complexities of business intelligence services.
  • Taskhub: supported by the Monet framework, this service addresses the need for handling manual tasks within automated workflows.
  • Datahub: supported by [[Ness|Ness framework], this service is a central component that acts as the backbone for data management within the distributed system. The Datahub is supported by a message broker that manages events, efficiently handling the ingestion, processing, and routing of events across the system. Additionally, it incorporates a datalake where these events are stored. This datalake serves as a repository for structured and unstructured data


Architecture.
Architecture.


The development of business units follows the Hexagonal architecture, a software design pattern aimed at organizing application logic while maintaining a clear separation between core functionalities and external interfaces. When applied to business units, this architecture is supported by:

  • Magritte:: Primarily focused on the business logic layer, managing the core processes, rules, and operations at the heart of the application. It embodies the hexagonal architecture's principle of isolating business logic from external influences. This isolation ensures that business rules remain independent of external interfaces or data access methods. Magritte likely defines what are known as ports—interfaces through which the core business logic interacts. These ports are designed to communicate with external services or applications via adapters, which are managed by the Konos framework.
  • Konos: Responsible for managing the adapters, which are the implementations that connect the application's ports to external services such as web interfaces, databases, or external APIs. This role involves overseeing the flow of data between the business core and these services, handling tasks such as data translation, formatting, and adherence to communication protocols. Additionally, Konos may support broader infrastructure needs, including security measures, data storage solutions, and possibly messaging and event-handling systems, all crucial for enabling efficient scaling across various environments.


DSLs

A significant aspect of Intino's vision is its reliance on Domain-Specific Languages (DSLs). A DSL is a programming language customized to a specific application domain. Unlike general-purpose programming languages, which are designed to be versatile and applicable to various tasks, DSLs focus on solving particular problems or tasks.

Intino provides a suite of specialized DSLs designed to streamline different facets of its technology framework, enhancing both development and operational efficiency.

  • Ness DSL Ness focuses on creating the structure for the datalake, which is crucial for supporting big data analytics and real-time data processing. It also defines the taxonomy of events within the system, ensuring that events are categorized and managed effectively for easy retrieval and analysis.
  • Proteo DSL is used for defining the business model, providing clear specifications of data structures and relationships critical for consistent application across platforms.
  • Konos DSL facilitates the integration of business logic with external services by defining layers that handle interactions, such as APIs, user interfaces, and business processes. For the deployment and management of software artifacts,
  • Legio DSL orchestrates the project model, handling dependencies and configurations akin to a project object model.