Back to projects
webaidata 2025

Fusio(n) Research Collaboration Platform

A Laravel and Inertia platform case study for research collaboration discovery, AI-assisted matching, team formation, real-time communication, and production-readiness design.

Open Fusio(n)
Technical focus
Full-stack architecture, matching workflow, and production-readiness perspective
Year
2025
Stack
Laravel 12, PHP 8.3, React 19, TypeScript, Inertia.js, PostgreSQL, pgvector, Redis, Laravel Octane, FrankenPHP, Laravel Reverb

Architecture

Research collaboration platform architecture

Fusio(n) keeps the researcher product experience inside Laravel and Inertia, while semantic matching, realtime collaboration, queues, pgvector storage, and the companion ML API sit behind explicit service boundaries.

  1. Stage 1

    Product experience

    Inertia connects Laravel routes to a React product interface.

    • React and Inertia UI

      • React
      • Inertia.js
      • Vite
    • Workflow surfaces

      • TypeScript
      • Tailwind
    Technical details
    React and Inertia UI
    Discovery flows, profile onboarding, collaboration hub, team science, teams, messages, AI assistant, and admin-oriented views.
    Workflow surfaces
    Hard Flow, ML Flow, Content Flow, Team Science, AI Bio Matching, Collaboration Hub, Teams, and unified communications.
  2. Stage 2

    Laravel domain layer

    Controllers delegate product behavior into services, jobs, models, events, policies, and provider abstractions.

    • Routes, controllers, and services

      • Laravel 12
      • PHP 8.3
      • Sanctum
    • AI and matching services

      • Provider abstraction
      • pgvector
    Technical details
    Routes, controllers, and services
    Profile, matching, hub, team, workgroup, communication, recommendation, metrics, and admin behavior lives behind Laravel boundaries.
    AI and matching services
    Embedding generation, semantic search, hybrid boost scoring, match explanations, recommendation caches, and ML service integration.
  3. Stage 3

    Async and realtime

    Longer work and live collaboration state are separated from normal page rendering.

    • Redis-backed jobs

      • Redis queues
      • Laravel jobs
    • Reverb and Echo events

      • Laravel Reverb
      • Laravel Echo
    Technical details
    Redis-backed jobs
    AI recommendation generation, entity processing, match regeneration, team recommendations, newsletters, cleanup, and operational commands.
    Reverb and Echo events
    Messages, communications, notifications, team updates, and recommendation readiness are broadcast to the React client.
  4. Stage 4

    Data and external services

    Transactional data, semantic vectors, cache/session state, and heavy ML matching are kept behind storage and service contracts.

    • PostgreSQL with vector search

      • PostgreSQL
      • pgvector
    • Cache, AI providers, and ML API

      • Redis
      • OpenAI
      • FastAPI ML
    Technical details
    PostgreSQL with vector search
    Users, profiles, keywords, teams, communications, entity documents, embeddings, semantic matches, feedback, and recommendation state.
    Cache, AI providers, and ML API
    Redis handles cache, sessions, queues, and scaling; AI providers handle embeddings and extraction; the companion FastAPI service handles heavier collaborator ranking.

Key flows

  1. React and Inertia UI to Laravel domain layer

    Authenticated product workflows move through Laravel routes, controllers, request validation, policies, and service classes.

  2. Laravel domain layer to PostgreSQL with vector search

    Profiles, teams, communications, embeddings, semantic matches, and feedback are persisted in the primary database.

  3. Laravel domain layer to Cache, AI providers, and ML API

    Embedding, structured extraction, heavier ML matching, and workgroup analysis are called through service abstractions.

  4. Async and realtime to Product experience

    Jobs and events update recommendations, messages, notifications, team changes, and assistant state without requiring manual refresh.

Outcomes

Impact

  • Mapped the technical architecture for researcher onboarding, profile-based discovery, semantic matching, workgroup creation, team workflows, and collaboration communication.
  • Implemented AI-backed matching patterns with provider abstraction, embeddings, pgvector similarity search, hybrid scoring, and reliability controls.
  • Documented production-readiness considerations for caching, queues, realtime broadcasting, observability, and operational handoff without exposing environment-specific details.

Fusio(n) is a research collaboration platform built around the problem of helping researchers and adjacent public, industry, and civil-society participants find useful collaborators, assemble teams, and coordinate work.

The project is not only a Laravel app with a React frontend. From a technical perspective it includes multiple matching paths, a profile system, AI and semantic infrastructure, collaboration workflows, real-time communication, and operational documentation.

Product Scope

The platform supports profile-driven onboarding where users describe what they are searching for and what expertise they can offer. Those profiles feed several discovery workflows:

  • Hard Flow for deterministic profile and keyword matching
  • ML Flow for external workgroup API powered collaborator ranking through the Research Collaboration ML Matching API
  • Content Flow for research-related recommendations
  • Team Science for building teams around selected keyword coverage
  • Collaboration Hub for searching users, saving content, and initiating collaboration requests
  • AI Bio Matching for processing research bios into structured documents, embeddings, and semantic matches
  • Unified communications for messages, collaboration requests, team notifications, and live updates

The ML Flow is separated as its own service because model inference, embedding cache, batch processing, and GPU/CPU runtime concerns are different from the Laravel product runtime. Fusio(n) carries the user-facing workflow, while the companion ML API handles heavier researcher matching behavior.

Architecture

The backend is built with Laravel 12 on PHP 8.3. Inertia.js connects the Laravel routes and controllers to a React 19 and TypeScript frontend built with Vite and Tailwind CSS.

The application separates domain behavior into controllers, jobs, models, events, providers, policies, and service classes. Important technical boundaries include:

  • embedding generation, caching, storage, and vector similarity lookup
  • semantic search, hybrid boost scoring, match explanation, and cached results
  • companion ML service integration for heavier matching and workgroup analysis
  • direct messages, collaboration requests, team threads, and realtime broadcasts
  • team gap analysis and user/content recommendation workflows
  • operational metrics for latency, cache behavior, usage, and match quality

AI and Matching Infrastructure

The AI layer uses a provider abstraction so embedding, structured extraction, match explanation, retry, timing, and usage accounting behavior can be handled behind one application boundary.

Semantic matching is backed by PostgreSQL with pgvector. The schema stores raw entity documents, cleaned content, structured data, embeddings, cached semantic matches, match feedback, and embedding job status. The embedding table uses a vector column and an HNSW cosine index for fast similarity search.

The matching pipeline combines vector similarity with rule-based boosts. Boosts account for discipline overlap, career-stage compatibility, keyword/topic overlap, and target-specific eligibility. This makes the result more useful than plain nearest-neighbor search alone.

Real-Time Collaboration

The communication system moved beyond basic message tables into a unified thread model. It supports direct messages, collaboration requests, team threads, hub collaboration requests, participant responses, unread counts, notifications, keyword assignment actions, replacement suggestions, and coverage analysis.

Laravel Reverb and Laravel Echo provide the real-time layer. Events such as messages, communication updates, team updates, recommendation readiness, and notification changes are broadcast to the frontend so collaboration state can update without manual refreshes.

Operational Readiness

The operational design separates web serving, realtime broadcasting, cache/session storage, and queue workloads. The public case study keeps this intentionally high-level and does not expose environment names, startup automation, private application paths, or recovery procedures.

The readiness work includes:

  • cache and queue separation
  • realtime broadcasting boundaries
  • migration and release sequencing
  • configuration caching strategy
  • operational notes for observability and handoff
  • post-release verification checklists

Reliability work also includes abuse-prevention controls, queue planning, AI dependency health checks, performance notes, test coverage, and operational documentation.

Quality and Reliability Work

The public page avoids exposing exact protective controls or private application paths. At a technical level, the project includes:

  • gated application flows
  • centralized input validation
  • abuse-prevention boundaries
  • AI usage controls
  • data minimization in recommendation outputs
  • feature tests for core product behavior
  • automated formatting, linting, and build checks

Technical Perspective

This case study demonstrates full-stack technical breadth rather than isolated feature work. The visible scope includes Laravel backend development, React/Inertia frontend implementation, AI matching infrastructure, data modeling, async jobs, realtime communication, performance tuning, and operational documentation.