Inter-Service Communication
Every HTTP call, RabbitMQ message, and shared database connection between services is documented here.
HTTP REST Calls
auth-service calls
| Target | Endpoint | Purpose |
|---|
| user-service | GET /user/by-email?email= | Look up user during login |
| user-service | POST /user | Create user during registration |
| user-service | GET /user/zitadel/:id | Find user by ZITADEL ID |
| user-service | POST /user/zitadel | Create user from ZITADEL data |
| ZITADEL (external) | Token introspection, JWKS | Validate ZITADEL tokens |
| Firebase (external) | Admin SDK | Authenticate/register users |
user-service calls
| Target | Endpoint | Purpose |
|---|
| user-base-ms | User CRUD, tags, pins, favorites, activity logs, features, shares, locks, integration tools, Langflow accounts, connectors, languages | All user data persistence |
| admin-base-ms | Roles, permissions, org settings, org languages/models/agents/connectors/templates/workflows/parsing | Organization config and RBAC |
| llm-core | Conversations, agents, available models, agent files/tree | AI feature data |
| document-service | Document tree, document download | Document access |
| identity-service | Group management, membership | User group resolution |
| Langflow | Flow CRUD, run flows, token refresh | Workflow execution |
llm-core calls
| Target | Endpoint | Purpose |
|---|
| completion-service | POST /api/v1/completions | LLM completions (streaming and non-streaming) |
| agent-service | POST /api/v1/agent/run | Agent execution (streaming and non-streaming) |
| document-service | Document metadata, base64 content, folders, exports | Document access for conversations |
| user-service | Pins, tags, favorites, user info, sharing/access | User preferences and access control |
| Langflow | Run workflows, upload files, inspect flows | Workflow integration |
completion-service calls
| Target | Endpoint | Purpose |
|---|
| llm-core | GET /api/v1/services-config/models-providers | Fetch model/provider configuration at startup |
| OpenAI, Azure OpenAI, Anthropic, Google, Mistral, Jamba, Ollama, vLLM (external) | Provider-specific APIs | Execute LLM completions |
agent-service calls
| Target | Endpoint | Purpose |
|---|
| completion-service | POST /api/v1/completions | LLM reasoning in the agentic loop |
| mcp-client-service | GET /mcp/v1/tools/list-tools | Discover available MCP tools |
| mcp-client-service | POST /mcp/v1/tools/call-tool | Execute a tool call |
document-service calls
| Target | Endpoint | Purpose |
|---|
| parser-service | POST /api/v1/parser/parse | HTTP fallback when RabbitMQ unavailable |
| completion-service | POST /completions | Document summarization (Map-Reduce via GPT-4o) |
| user-service | Sharing, bulk users, access checks | Access control for documents |
| admin-base-ms | Org parsing technique settings | Per-org parser configuration |
rag-service calls
| Target | Endpoint | Purpose |
|---|
| embedding-service | POST /api/v1/embed/single | Embed the user query for similarity search |
| completion-service | POST /api/v1/completions | LLM-based reranking |
| reranker-service (optional) | POST /v1/rerank | BGE model reranking |
integration-service calls
| Target | Endpoint | Purpose |
|---|
| user-service | GET /langflow-users/me | Get Langflow account record |
| user-service | POST /langflow-users | Create Langflow account record |
| user-service | PATCH /langflow-users/:userId | Update account |
| Langflow (external) | Login, refresh, user management, flow CRUD, run flows | Full Langflow integration |
mcp-client-service calls
| Target | Endpoint | Purpose |
|---|
| All MCP tool servers | Tool-specific endpoints | Routes tool calls to the correct MCP server |
RabbitMQ Messages
| Queue | Producer | Consumer | Purpose |
|---|
parsing_jobs | document-service | parser-service worker | Trigger document parsing |
parsing_results | parser-service worker | document-service | Return parsed content |
parsing_progress | parser-service worker | document-service | Parsing progress updates |
embedding_jobs | document-service | embedding-service worker | Trigger embedding generation |
embedding_results | embedding-service worker | document-service | Return embedding status |
embedding_progress | embedding-service worker | document-service | Embedding progress updates |
transaction | completion-service | llm-core | Token usage events |
Shared Databases
Document Database (PostgreSQL + pgvector)
Shared by: document-service, parser-service, embedding-service, rag-service. Default name: document_service (configurable via PG_NAME per service).
| Table | Owner (writes) | Readers |
|---|
documents | document-service | parser-service (read-only), embedding-service (read-only), rag-service (read-only) |
chunks | embedding-service | rag-service, document-service |
embeddings | embedding-service | rag-service |
parsing_jobs | parser-service | parser-service |
folders | document-service | -- |
parsing_techniques | document-service | -- |
llm-core DB (PostgreSQL)
Owned by: llm-core only
Tables: conversations, messages, message_contents, message_reactions, document_attachments, agents, agent_settings, agent_documents, agent_conversions, models, providers, models_providers, canvases, canvas_versions, templates, services_config, model_transactions, conversions
admin-base DB (PostgreSQL)
Owned by: admin-base-ms only
Tables: organizations, roles, permissions, role_permissions, app_modules, features, actions, resource_units, resource_unit_members, unit_types, organization_settings, organization_languages, organization_models, organization_agents, organization_connectors, organization_templates, organization_workflows, organization_parsing
user-base DB (PostgreSQL)
Owned by: user-base-ms only
Tables: users, user_roles, tags, tag_entities, favorites, pins, searches, activity_logs, features, feature_shares, feature_link_settings, feature_locks, integration_tools, langflow_users, connectors, languages
Redis
| Service | Usage |
|---|
| auth-service | Session storage (ZITADEL sessions) |
| llm-core | Cache (conversation search, Langflow flow details) |