Comprehensive guides and references for the OpenFrame platform
The Service Applications Entrypoints module defines the runtime entry points for all major OpenFrame microservices. Each class in this module is a Spring Boot @SpringBootApplication responsible for:
This module does not implement business logic itself. Instead, it wires together functionality from lower-level modules such as API Core, Authorization Server, Data (Mongo, Kafka, Pinot), Gateway, Client Core, and Stream Processing.
At runtime, OpenFrame is composed of multiple independently deployable services. The Service Applications Entrypoints module defines the main classes that start each of them.
flowchart TD
ConfigServer["Config Server Application"]
Gateway["Gateway Application"]
Api["API Application"]
ExternalApi["External API Application"]
Authz["Authorization Server Application"]
Stream["Stream Application"]
Client["Client Application"]
Management["Management Application"]
Gateway --> Api
Gateway --> ExternalApi
Gateway --> Authz
Api --> Stream
Client --> Api
Stream --> Api
Management --> Api
ConfigServer --> Gateway
ConfigServer --> Api
ConfigServer --> Authz
ConfigServer --> Stream
ConfigServer --> Client
com.openframe.data, com.openframe.core, com.openframe.security, etc.).@ComponentScan: Each entrypoint controls which packages are active in that runtime.Each of the following classes represents a deployable service.
Class: ApiApplication
Package: com.openframe.api
Primary internal API service. Exposes REST and GraphQL endpoints used by the frontend and internal services.
com.openframe.api
com.openframe.data
com.openframe.core
com.openframe.notification
com.openframe.kafka
flowchart LR
Controller["REST / GraphQL Controllers"] --> Service["Domain Services"]
Service --> Repository["Mongo Repositories"]
Service --> Kafka["Kafka Producer"]
Class: OpenFrameAuthorizationServerApplication
Package: com.openframe.authz
OAuth2 / OIDC Authorization Server responsible for:
@EnableDiscoveryClientcom.openframe.authz
com.openframe.core
com.openframe.data
com.openframe.notification
flowchart TD
Login["Login / OAuth Endpoints"] --> Token["Token Issuance"]
Token --> Mongo["OAuth Persistence"]
Token --> Jwt["JWT Signing"]
Class: GatewayApplication
Package: com.openframe.gateway
Acts as the edge service for:
com.openframe.gateway
com.openframe.core
com.openframe.data
com.openframe.security
flowchart LR
Client["Frontend / Agents"] --> Gateway
Gateway --> Api
Gateway --> ExternalApi
Gateway --> Authz
The Gateway centralizes security enforcement and traffic routing.
Class: ExternalApiApplication
Package: com.openframe.external
Public-facing API surface intended for:
com.openframe.external
com.openframe.data
com.openframe.core
com.openframe.api
com.openframe.kafka
This service reuses internal API components but exposes a curated interface.
Class: StreamApplication
Package: com.openframe.stream
Event-driven processing service.
@EnableKafkacom.openframe.stream
com.openframe.data
com.openframe.kafka.producer
flowchart TD
Kafka["Kafka Topics"] --> Listener["Kafka Listeners"]
Listener --> Enrichment["Enrichment Services"]
Enrichment --> Producer["Kafka Producer"]
Class: ClientApplication
Package: com.openframe.client
Handles agent communication and machine-level interactions.
CassandraHealthIndicatorcom.openframe.data
com.openframe.client
com.openframe.core
com.openframe.security
com.openframe.kafka.producer
Class: ManagementApplication
Package: com.openframe.management
Operational and management endpoints.
CassandraHealthIndicatorcom.openframe.management
com.openframe.data
com.openframe.core
Used for:
Class: ConfigServerApplication
Package: com.openframe.config
Central configuration service for distributed environment.
flowchart TD
Config["Config Server"] --> Api
Config --> Gateway
Config --> Authz
Config --> Stream
Config --> Client
Provides:
The entrypoint classes define bounded runtime contexts. Each service chooses which lower-level modules to activate via @ComponentScan.
flowchart LR
subgraph core["Shared Core Libraries"]
Data["Data Layer"]
Security["Security"]
KafkaLib["Kafka Support"]
Core["Core Utilities"]
end
Api --> core
Gateway --> core
Authz --> core
Stream --> core
Client --> core
ExternalApi --> core
This ensures:
Single Responsibility per Service
Each application entrypoint represents one deployable concern.
Explicit Component Boundaries
Controlled via @ComponentScan.
Infrastructure Isolation
Kafka, Mongo, Security, and Gateway concerns are activated only where needed.
Multi-Tenancy Support
The Authorization Server and Gateway enforce tenant-aware security.
Event-Driven Core
The Stream Application processes asynchronous data flows across services.
The Service Applications Entrypoints module is the orchestration layer that turns reusable libraries into deployable microservices.
It defines:
Together, these entrypoints form the executable topology of the OpenFrame platform.