No description
Find a file
Mallne 7ffbae9c5c Upgrade dependencies and refine Gradle scripts
Updated several dependencies including Kotlin, Ktor, and Maven Publish to newer versions. Improved Gradle scripts by replacing `properties` with `project.findProperty` for enhanced property resolution. Adjusted Gradle wrapper configurations and fixed syntax for better consistency in source set declarations.
2026-07-13 20:23:39 +02:00
.github Restructure Synapse 2025-08-15 09:38:32 +02:00
core Refactor configuration handling to use SynapseConfig and add CodexConfig integration 2026-06-05 23:24:57 +02:00
gradle Upgrade dependencies and refine Gradle scripts 2026-07-13 20:23:39 +02:00
host Align Dependencies and better support for JS Target 2026-03-17 23:17:50 +01:00
.gitignore Restructure Synapse 2025-08-15 09:38:32 +02:00
AGENTS.md Add published documentation hierarchy to AGENTS.md 2026-06-02 14:56:11 +02:00
build.gradle.kts Align Dependencies and better support for JS Target 2026-03-17 23:17:50 +01:00
docker-compose.yml Restructure Synapse 2025-08-15 09:38:32 +02:00
gradle.properties Restructure Synapse 2025-08-15 09:38:32 +02:00
gradlew Refactor and align scope routing and RBAC model 2026-03-23 15:50:17 +01:00
gradlew.bat Restructure Synapse 2025-08-15 09:38:32 +02:00
http-client.env.json Restructure Synapse 2025-08-15 09:38:32 +02:00
LICENSE Add Readme and Agents Files 2026-03-19 21:50:55 +01:00
README.md Add Readme and Agents Files 2026-03-19 21:40:13 +01:00
settings.gradle.kts update Aviator to use the seperate Mock client as its no longer included in the core package 2025-11-18 18:38:50 +01:00
test.http Restructure Synapse 2025-08-15 09:38:32 +02:00

Synapse

DiCentra Kotlin License

 .oooooo..o
d8P'    `Y8
Y88bo.      oooo    ooo ooo. .oo.    .oooo.   oo.ooooo.   .oooo.o  .ooooo.
 `"Y8888o.   `88.  .8'  `888P"Y88b  `P  )88b   888' `88b d88(  "8 d88' `88b
     `"Y88b   `88..8'    888   888   .oP"888   888   888 `"Y88b.  888ooo888
oo     .d8P    `888'     888   888  d8(  888   888   888 o.  )88b 888    .o
8""88888P'      .8'     o888o o888o `Y888""8o  888bod8P' 8""888P' `Y8bod8P'
            .o..P'                             888
            `Y8P'                             o888o

A part of DiCentra by Mallne

Synapse is the core service discovery and "Catalyst" (service mesh/gateway) layer of the DiCentra Application Framework. It provides a centralized registry for services and a dynamic gateway for routing, aggregation, and AI-driven interactions.


🚀 Key Features

  • 🔍 Service Discovery: A robust registry for public and multi-tenant (scoped) services.
  • Catalyst Gateway: High-performance service mesh that handles dynamic routing and request tailoring.
  • 🤖 MCP Server: Built-in support for the Model Context Protocol, enabling LLM agents to interact directly with your service ecosystem.
  • 🔐 Secure by Design: Integrated OIDC/JWT authentication with fine-grained scope-based access control.
  • 🔗 Monorepo Ready: Seamlessly integrates with Aviator and Polyfill.

🏗 Architecture

Synapse is built with a modular approach:

  • :core: The heart of the system, containing domain logic, service definitions, and API routes.
  • :host: The execution environment, handling server configuration and application startup.

🛠 Tech Stack


🚦 Quick Start

Prerequisites

  • JDK 17+
  • Docker (for database)

Setup

  1. Start the database:

    docker-compose up -d
    
  2. Configure environment: Create a .env or set environment variables for DATA_USER and DATA_PASSWORD.

  3. Run the application:

    ./gradlew :host:run
    

📖 API Overview

Catalyst Endpoints

  • GET /catalyst: List all registered Service Locators.
  • POST /catalyst/aggregate/{locator}: Aggregate requests across multiple services.
  • POST /catalyst/request/{id}: Send a tailored request to a specific service.
  • GET /catalyst/mcp: The Model Context Protocol (MCP) server endpoint for AI agents.

Discovery Endpoints

  • GET /services: Discover available services based on your permissions.
  • POST /services: Register or update a service definition.
  • GET /services/{id}: Get details for a specific service.
  • DELETE /services/{id}: Remove a service from the registry.

🤝 Contributing

Synapse is part of the DiCentra ecosystem. Contributions are welcome! Please check the main DiCentra documentation for contribution guidelines.


Built with ❤️ by Mallne under the DiCentra umbrella