JForum

126
Pareto solutions
6
Exemplars
2 (α=0.5)
Clusters
0.77
HV ratio
0.482
Silhouette

Exemplars

#1#2#3#4#5#6
Exemplar 1: Data-Optimal
Data-Optimal constraint anchor
The decomposition isolates the Moderation and Governance bounded context as a contained microservice while the other four contexts remain fragmented. Overall cohesion is moderate (CHM = 0.6699) and coupling low (CHD = 0.3554), with no foreign‑key crossings between services (n_fk_crossings = 0).
28 services · Cluster 2 — fewest interfaces (n=117) · key: 16_10_18_45_45_654702__unir_0
Metrics
Interface count2.286
Msg cohesion0.670
Domain cohesion0.355
Inter-svc calls597.000
Structural MQ0.264
Conceptual MQ0.450
BC penalty0.851
NMI (BC align.)0.263
Data ownership0.248
Verified facts
  • BCs contained: Moderation and Governance
  • BCs fragmented: Configuration and Administration, Forum, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_GROUPS, JFORUM_POST_REPORT, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_THEMES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS, JFORUM_WORDS
  • High-uncertainty classes: 131
Benefits
  • The contained Moderation and Governance context achieves a high majority share of 0.8571, indicating strong internal cohesion.
  • Zero foreign‑key crossings eliminates distributed transaction risk across services.
Risks
  • Four fragmented bounded contexts distribute their classes across many services (e.g., Forum spans 25 services), which may increase inter‑service latency.
  • Twelve classes have maximal entropy (entropy_norm = 1.0) and low confidence (0.2), indicating uncertainty about their correct placement.
Services
SmilieManagement: Manage creation, retrieval, and administration of emoticon assets used in forum posts.
ForumGovernance [Forum, Moderation and Governance, Notification and Subscription]: Enforce access rules, handle moderation actions, track forum events, and manage notifications and subscriptions across topics.
ConfigurationAdministration [Configuration and Administration]: Provide CRUD operations for system configuration, manage admin settings, and support Lucene indexing and custom path resolution.
ForumEventListener: Listen to domain events and dispatch appropriate actions for categories, forums, posts, and topics.
ContentModerationEvent: Process content-related events such as bad word detection, empty posts, spam handling, and topic watch notifications.
UserRanking: Calculate and expose user ranking metrics, with admin capabilities for managing ranking data.
+22 more services
PrivateMessaging: Handle sending, receiving, and rule‑based access control for private messages between users.
RssFeed: Generate and serve RSS feeds for forum content.
SpamProcessing: Execute background jobs for sending activation keys, lost‑password emails, and various spam‑related message dispatches.
SecurityInterceptor: Intercept controller methods to enforce authentication and authorization rules.
UserManagement [User Management]: Manage user authentication, registration, sessions, roles, and profile administration.
PollManagement: Create, update, and vote on polls attached to forum topics.
BadWordManagement: Administer the list of prohibited words used for content filtering.
AvatarManagement: Store, retrieve, and serve user avatar images with admin controls.
ThemeManagement: Manage visual themes for the forum UI.
QueryCache: Cache database query results to improve performance.
BBCodeProcessing: Parse and format BBCode markup within forum posts.
ForumSearch: Execute paginated search queries over forum content based on parameters.
OperationChain: Coordinate chained request operations such as post report counting.
DataRepository: Provide generic DAO implementations for attachments, bans, themes, recent topics, and session persistence.
TagTemplateEngine: Renders forum tags, templates, internationalization resources, and handles import operations for UI presentation.
MessageFormattingEngine: Formats forum messages, signatures, and HTML content, applying safe HTML and smilie transformations.
AttachmentManagementService: Manages file attachments, including upload, storage, image processing, and retrieval for posts.
TopicWatchManagement: Tracks user watch subscriptions on topics, providing watch persistence and notification triggers.
GroupPermissionManagement: Handles group and role definitions, permission assignments, and administrative operations for forum access control.
PostReportService: Collects and processes user reports on posts, storing report data and exposing reporting APIs.
EmptyEntityEventProcessor: Detects and processes events when categories, forums, or topics become empty, coordinating cleanup actions.
CategoryManagementService: Manages forum categories, including creation, ordering, and administrative CRUD operations.
Services & data
Exemplar 2: Structural-Best
Structural-Best constraint anchor
The decomposition isolates five bounded contexts—User Management, Forum, Moderation and Governance, Notification and Subscription, and Configuration and Administration—into separate microservices. Each context is currently fragmented, with its classes spread across multiple existing services.
29 services · Cluster 2 — fewest interfaces (n=117) · key: 16_10_18_45_58_724589__unir_1
Metrics
Interface count2.286
Msg cohesion0.683
Domain cohesion0.408
Inter-svc calls643.000
Structural MQ0.268
Conceptual MQ0.479
BC penalty0.858
NMI (BC align.)0.241
Data ownership0.351
Verified facts
  • BCs contained: —
  • BCs fragmented: Configuration and Administration, Forum, Moderation and Governance, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_GROUPS, JFORUM_MODERATION_LOG, JFORUM_POSTS, JFORUM_POST_REPORT, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_THEMES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS
  • High-uncertainty classes: 131
Benefits
  • Cohesion within the proposed services is relatively high (CHM = 0.68), indicating well‑aligned responsibilities.
  • There are no foreign‑key crossings between contexts (n_fk_crossings = 0), eliminating the need for distributed transactions across databases.
Risks
  • All bounded contexts are marked as fragmented, which may cause residual coupling and coordination overhead.
  • Twelve classes have maximal entropy (entropy_norm = 1.0) and low confidence (0.2) about their bounded‑context assignment, creating uncertainty in service boundaries.
  • A large set of shared database tables (e.g., JFORUM_USERS, JFORUM_POSTS) are accessed by multiple contexts, raising data consistency and transaction management concerns.
Services
EmptyEntityEventService: Publishes and processes events when categories or forums become empty.
UserAccessManagementService [Notification and Subscription, User Management]: Handles authentication, authorization, session management, and user‑related rules for forum access and notifications.
SmilieManagementService: Manages smilies including storage, formatting, and administrative operations.
ConfigurationManagementService [Configuration and Administration]: Provides CRUD operations for system configuration settings.
ForumEventListenerService: Listens to category, forum, post, and topic events and dispatches appropriate actions.
PostReportService: Allows users to report posts and manages the lifecycle of those reports.
+23 more services
PrivateMessagingService: Enables sending, receiving, and managing private messages between users.
BulkEmailNotificationService: Generates and dispatches bulk email notifications such as activation keys, password resets, and topic replies.
PollManagementService: Manages creation, voting, and result calculation for polls attached to topics.
SecurityInterceptorService: Applies method and controller security checks across the application.
GroupRoleManagementService: Manages user groups, roles, and associated permissions within the forum.
UserRankingService: Calculates and maintains user ranking scores based on forum activity.
BadWordFilterService: Maintains the prohibited words list and filters content accordingly.
RequestOperationPipelineService: Executes chained request operations for processing forum actions.
ThemeManagementService: Handles theme selection and administration for the forum user interface.
CategoryManagementService: Manages forum categories, their ordering, and CRUD operations.
OnlineStatisticsService: Tracks and provides the record of peak concurrent online users.
QueryCacheService: Caches database query results to improve performance.
LocalizationAndFeedService: Provides internationalization, search indexing, message handling, and RSS feed generation for the forum.
ForumCoreManagementService [Forum, Moderation and Governance]: Handles core forum operations including topics, posts, attachments, moderation, bans, and statistics.
SearchQueryService: Executes forum search operations, handling query parameters, pagination, and returning structured search results.
TemplateTagRenderingService: Renders custom JSP tags for categories, forums, internationalization, imports, settings, and URLs within forum templates.
PostFormattingService: Formats post content, signatures, and HTML safety by applying BBCode, newline conversion, and safe HTML transformations.
BBCodeProcessingService: Parses and formats BBCode markup according to configuration, enabling rich text representation in posts.
FileAttachmentService: Manages file attachments, including upload, storage, image processing, and retrieval for forum posts.
AvatarManagementService: Handles avatar creation, storage, retrieval, and administrative operations for user profile images.
TopicWatchNotificationService: Manages user subscriptions to topics, delivering notifications when watched topics receive new activity.
PostEventPublishingService: Publishes domain events related to post creation and topic watch actions for downstream processing.
ContentModerationService: Provides moderation workflows, logging, and approval mechanisms for content and user actions within the forum.
Services & data
Exemplar 3: Compromise
Compromise constraint anchor
The candidate decomposition isolates the five fragmented bounded contexts—User Management, Forum, Moderation and Governance, Notification and Subscription, and Configuration and Administration—into separate microservice groups. Across the system there are 33 services, with each bounded context already containing a distinct set of services (e.g., 17 in User Management and 28 in Forum).
33 services · Cluster 2 — fewest interfaces (n=117) · key: 16_10_18_46_23_619220__unir_0
Metrics
Interface count2.087
Msg cohesion0.685
Domain cohesion0.392
Inter-svc calls728.000
Structural MQ0.241
Conceptual MQ0.498
BC penalty0.838
NMI (BC align.)0.299
Data ownership0.389
Verified facts
  • BCs contained: —
  • BCs fragmented: Configuration and Administration, Forum, Moderation and Governance, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_FORUMS_LIMITED_TIME, JFORUM_GROUPS, JFORUM_MODERATION_LOG, JFORUM_POSTS, JFORUM_POST_REPORT, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_THEMES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS
  • High-uncertainty classes: 131
Benefits
  • Cohesion improves because each bounded context’s majority service already owns a sizable share of its classes (e.g., 25.5 % in Forum and 18 % in User Management).
  • The architecture has zero foreign‑key crossings between services, eliminating the need for distributed transactions.
Risks
  • The current fragmentation indicates that classes are spread across many services, so splitting into microservices may increase inter‑service communication overhead.
  • Twelve classes have high ownership uncertainty (entropy_norm = 1.0) and low confidence (0.2), which could cause ambiguity when assigning them to a microservice.
Services
SmilieManagement: Manages creation, formatting, and administration of smilies used in forum posts.
ForumManagement [Forum, Moderation and Governance, Notification and Subscription]: Handles forum structures, topics, posts, access rules, moderation actions, and related notifications.
ConfigurationAdministration [Configuration and Administration]: Provides CRUD and runtime management of system configuration and administrative settings.
ForumEventDispatcher: Listens to domain events and dispatches them to appropriate handlers for categories, forums, posts, and topics.
PostReportService: Allows users to report inappropriate posts and manages the lifecycle of those reports.
PostEventModel: Defines and publishes domain events related to posts, forum posts, and topic watch activities.
+27 more services
RankingService: Calculates and serves user ranking and reputation scores within the forum.
AvatarManagementService: Handles upload, storage, and retrieval of user avatars and associated image metadata.
SecurityInterceptorService: Provides method‑level security interception for controller actions across the application.
PrivateMessageService: Enables sending, receiving, and management of private messages between users.
EmailNotificationService: Executes asynchronous email tasks such as activation, password recovery, and message notifications.
UserManagementService [User Management]: Manages user accounts, authentication, sessions, and administrative user operations.
PollManagementService: Creates polls, records votes, and aggregates results for forum topics.
MessageIdService: Generates and validates unique identifiers for forum messages.
MessageRoutingService: Builds URLs and routes for forum messages and related resources.
ModerationLogService: Records and provides access to moderation actions and logs within the forum.
BadWordFilterService: Maintains a prohibited words list and filters content accordingly.
ThemeManagementService: Manages forum themes and related presentation settings.
CategoryManagementService: Organizes forum categories, ordering, and CRUD operations.
ForumDataAccessService: Provides generic data access, repository implementations, and aggregates forum statistics.
OnlinePeakStatisticsService: Tracks and provides the record of the highest number of simultaneous online users.
QueryCacheManagementService: Creates, configures, and evicts query result caches according to defined rules.
BBCodeProcessingService: Parses, formats, and renders BBCode markup within forum posts.
RequestOperationPipelineService: Executes chained request operations for post report counting and related workflows.
AccessControlManagementService: Manages groups, roles, permissions, and related events for forum access control.
EmptyEntityEventService: Emits events when categories or forums become empty.
SingleSignOnGatewayService: Provides remote user single sign‑on integration for authentication across systems.
SearchQueryService: Executes paginated search queries and returns results for forum content.
ForumTagRenderingService: Renders custom JSP tags for categories, forums, i18n, imports, and URLs in the UI.
MessageFormattingService: Formats post content, signatures, and HTML safely using a suite of formatters.
AttachmentManagementService: Handles storage, validation, and utilities for file attachments in forum posts.
TopicWatchManagementService: Manages user watch subscriptions on topics, including persistence and notifications.
TopicWatchEventPublisherService: Publishes events when watched topics are updated or changed.
Services & data
Exemplar 4: BC-Optimal
BC-Optimal constraint anchor
The candidate decomposition isolates the five identified bounded contexts—User Management, Forum, Moderation and Governance, Notification and Subscription, and Configuration and Administration—into separate microservices. Across the codebase there are 34 services with a low majority share per context (e.g., Forum 0.0918) and all contexts are marked fragmented, indicating that many classes are spread across multiple services.
34 services · Cluster 2 — fewest interfaces (n=117) · key: 16_10_18_46_35_842971__mover_4
Metrics
Interface count1.778
Msg cohesion0.703
Domain cohesion0.381
Inter-svc calls918.000
Structural MQ0.251
Conceptual MQ0.454
BC penalty0.839
NMI (BC align.)0.302
Data ownership1.501
Verified facts
  • BCs contained: —
  • BCs fragmented: Configuration and Administration, Forum, Moderation and Governance, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_FORUMS_LIMITED_TIME, JFORUM_GROUPS, JFORUM_MODERATION_LOG, JFORUM_POSTS, JFORUM_POST_REPORT, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_THEMES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS
  • High-uncertainty classes: 131
Benefits
  • Fragmentation is already low in foreign‑key coupling (n_fk_crossings = 0), so moving to microservices will not introduce distributed transactions.
  • Cohesion metrics (CHM = 0.7026, CHD = 0.3811) suggest moderate internal cohesion, supporting service boundaries.
  • Shared tables are limited to 18 tables, providing a manageable contract for data replication across services.
Risks
  • All bounded contexts are labeled fragmented, meaning classes are dispersed across many services (e.g., Forum uses 30 services for 98 classes), which may increase inter‑service latency.
  • Twelve classes have maximum entropy (entropy_norm = 1.0) and low confidence (≈0.2), indicating uncertainty in their bounded‑context assignment, which could cause mis‑aligned service boundaries.
  • The penalty_swm metric is 0.8394, close to 1, indicating a high penalty for service‑level weight mismatches, suggesting potential performance overhead.
Services
SmilieManagement: Provides CRUD operations and administrative UI for smiley definitions used in forum posts.
ForumAccessControl: Evaluates access rules and user session state to enforce permissions for all forum actions.
ConfigurationAdministration [Configuration and Administration]: Exposes configuration data through REST endpoints and handles persistence of system settings.
UserSessionManagement: Manages the lifecycle of user sessions, including creation, validation, and listener notifications.
ForumEventProcessing: Listens to domain events for categories, forums, posts, and topics and triggers appropriate business logic.
ForumCoreManagement: Handles forum entity CRUD, statistics, limited‑time forums, and admin extensions.
+28 more services
PostReportManagement: Allows users to report inappropriate posts and provides admin tools to review and act on those reports.
PostingAndTopicService [Forum]: Coordinates creation, editing, pagination, and event flow for posts and topics within forums.
UserAuthenticationService: Manages user accounts, login authentication, password recovery, and single‑sign‑on utilities.
SecurityInterception: Applies method‑level and controller‑level security checks via interceptor chains.
PrivateMessageService [Notification and Subscription]: Enables sending, receiving, and managing private messages and related subscription notifications.
SpamManagement: Generates and dispatches automated spam emails for activation, password recovery, and topic replies.
SingleSignOnService: Provides remote user SSO integration and token handling for cross‑system authentication.
GroupRoleManagement: Administers groups, roles, permissions, and related events for access control within the forum.
DataAccessInfrastructure: Offers generic DAO implementations and repositories for attachments, bans, themes, sessions, and recent topics.
RankingManagement: Calculates user ranking metrics, provides ranking data, and supplies admin controls for ranking rules.
BadWordFilter: Maintains the prohibited words list, handles related events, and provides admin UI for content moderation.
RequestOperationEngine: Builds and executes chained request operations for modular processing of incoming actions.
ThemeManagement: Manages theme entities and provides controller endpoints for theme selection and administration.
CategoryManagement: Administers forum categories, including ordering, persistence, and service‑level business rules.
PeakUserAnalytics: Tracks and provides the highest number of concurrent users ever recorded on the forum.
QueryCacheManagement: Caches frequently executed queries to improve read performance across the forum.
LocalizationFeedAdministration: Manages application configuration, internationalization resources, RSS feed generation, and Lucene indexing administration.
BBCodeProcessing: Parses and formats BBCode markup within forum posts.
SearchAndPagination: Executes search queries and returns paginated results for forum content.
EmptyStructureEvents: Publishes events when categories or forums become empty, enabling cleanup or notifications.
RecentTopicService: Provides a feed of recent topics and applies filtering criteria for display.
TemplateTagLibrary: Offers custom templating tags for rendering forum UI components and internationalized content.
MessageFormattingService [User Management]: Formats user-generated messages, signatures, and content safely, handling HTML entities, smilies, and line breaks.
AttachmentManagement: Manages file attachment upload, storage, and retrieval for forum posts.
AvatarManagement: Handles user avatar upload, processing, and administration.
TopicWatchManagement: Manages topic watch subscriptions and emits events for topic lifecycle changes.
ModerationGovernanceService [Moderation and Governance]: Provides moderation actions, rule evaluation, logging, and cache eviction for governance of forum content.
PollManagement: Creates, updates, and records votes for polls attached to forum topics.
Services & data
Exemplar 5: Fewest interfaces (cluster 2 medoid)
Cluster medoid cluster medoid
The decomposition isolates the five fragmented bounded contexts—User Management, Forum, Moderation and Governance, Notification and Subscription, and Configuration and Administration—into distinct microservices. Each microservice will group the classes currently allocated to its corresponding services, preserving the existing service distribution while removing cross‑service foreign‑key dependencies.
36 services · Cluster 2 — fewest interfaces (n=117) · key: 16_10_18_46_59_281272__unir_2
Metrics
Interface count1.846
Msg cohesion0.675
Domain cohesion0.362
Inter-svc calls816.000
Structural MQ0.239
Conceptual MQ0.522
BC penalty0.842
NMI (BC align.)0.290
Data ownership1.023
Verified facts
  • BCs contained: —
  • BCs fragmented: Configuration and Administration, Forum, Moderation and Governance, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_FORUMS_LIMITED_TIME, JFORUM_GROUPS, JFORUM_MODERATION_LOG, JFORUM_POSTS, JFORUM_POST_REPORT, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_THEMES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS
  • High-uncertainty classes: 131
Benefits
  • No foreign‑key crossings are present (n_fk_crossings = 0), eliminating the need for distributed transactions across services.
  • Cohesion within the new services improves, as the CHM metric is 0.675, indicating moderate to high internal cohesion.
  • The majority share of classes per context is low (e.g., Forum majority_share = 0.0918), suggesting that splitting will reduce the size of each service and improve scalability.
Risks
  • All bounded contexts are currently marked as fragmented, so the decomposition may inherit fragmentation and require further refactoring.
  • A set of 12 uncertain classes have entropy_norm = 1.0 and low confidence (0.2), risking misplacement in the new service boundaries.
  • Shared database tables (18 tables) remain common to all services, which could re‑introduce coupling at the data layer.
Services
SmilieManagementService: Manages creation, retrieval, and administration of forum smilies.
ForumAccessAndNotificationService [Forum, Notification and Subscription]: Enforces access rules, handles session management, and processes forum notifications and subscriptions.
ForumEventDispatchService: Listens to and dispatches domain events for categories, forums, posts, and topics.
PostReportManagementService: Handles reporting of inappropriate posts, storing reports and providing administrative review.
TopicWatchEventService: Publishes events when watched topics receive new posts to notify subscribers.
ContentModerationService [Moderation and Governance]: Provides CRUD operations for posts and topics, applies moderation rules, and manages governance workflows.
+30 more services
UserRankingService: Calculates and manages user ranking scores and provides administrative ranking configuration.
AvatarManagementService: Stores, retrieves, and administers user avatar images and metadata.
SpamSimulationService: Generates and sends test spam messages and topic replies for load testing and anti‑spam validation.
SecurityInterceptorService: Applies method and controller security checks across the application.
PrivateMessagingService: Enables sending, receiving, and managing private messages between users.
UserManagementService [User Management]: Handles user authentication, registration, profile editing, and session lifecycle.
CoreEventInfrastructureService: Defines base event types and empty event placeholders for the domain event system.
MessageIdentificationService: Generates and resolves unique identifiers for forum messages.
GroupAndRoleManagementService: Manages user groups, roles, permissions, and related events for access control.
RecentTopicsService: Retrieves and filters recent topics for display based on criteria.
BadWordFilterService: Maintains prohibited word list and filters content to enforce language policies.
ThemeManagementService: Manages visual themes and provides theme selection for the forum UI.
ConfigurationAdministrationService [Configuration and Administration]: Stores, retrieves, and administers system configuration, internationalization, and admin UI settings.
DataAccessInfrastructureService: Provides generic repository implementations and data access utilities for entities like attachments, bans, sessions, and themes.
PeakOnlineUserService: Tracks and provides the record of the highest number of concurrent online users.
QueryCacheManagementService: Creates, configures, and evicts query result caches according to defined rules.
SearchExecutionService: Handles search requests, applies pagination, and returns formatted search results.
PostReportProcessingService: Orchestrates operations to count, aggregate, and process post reports.
SingleSignOnService: Authenticates users via remote SSO providers and manages SSO sessions.
TemplateTagRenderingService: Renders custom UI tags for categories, forums, i18n, imports, and URLs within templates.
BbCodeProcessingService: Parses, validates, and formats BBCode markup in forum posts.
ForumAdministrationService: Manages forum lifecycle, statistics, limited‑time forums, and admin operations.
RssFeedService: Generates and serves RSS feeds for recent forum activity.
MessageFormattingService: Formats post messages, signatures, smilies and ensures safe HTML output.
AttachmentManagementService: Handles upload, storage, retrieval, and image utilities for file attachments.
TopicWatchManagementService: Manages user subscriptions to topic changes and watch lifecycle operations.
PollManagementService: Creates polls, records votes, and manages poll options within topics.
ModerationAuditService: Records moderation actions and provides audit logs for review.
TopicLifecycleEventService: Publishes events when topics become empty or are watched, enabling downstream processing.
CategoryManagementService: Handles creation, ordering, and retrieval of forum categories.
Services & data
Exemplar 6: Highest conceptual quality (cluster 1 medoid)
Cluster medoid cluster medoid
The proposed decomposition creates a separate microservice for each of the five fragmented bounded contexts: User Management, Forum, Moderation and Governance, Notification and Subscription, and Configuration and Administration. Together these microservices would encapsulate 231 domain classes (67 + 102 + 15 + 20 + 27) and 118 services (40 + 48 + 7 + 12 + 21). All contexts are currently marked as fragmented, indicating classes are spread across many services.
91 services · Cluster 1 — highest conceptual quality (n=9) · key: run28_eps0.75_step0.025_ms2__unir_0
Metrics
Interface count2.042
Msg cohesion0.742
Domain cohesion0.364
Inter-svc calls1150.000
Structural MQ0.107
Conceptual MQ0.827
BC penalty0.827
NMI (BC align.)0.293
Data ownership2.160
Verified facts
  • BCs contained: —
  • BCs fragmented: Configuration and Administration, Forum, Moderation and Governance, Notification and Subscription, User Management
  • FK crossings between services: 0
  • Shared tables: JFORUM_ATTACH, JFORUM_AVATAR, JFORUM_CATEGORIES, JFORUM_CONFIG, JFORUM_FORUMS, JFORUM_FORUMS_LIMITED_TIME, JFORUM_GROUPS, JFORUM_MODERATION_LOG, JFORUM_POSTS, JFORUM_POST_REPORT, JFORUM_PRIVMSGS, JFORUM_RANKS, JFORUM_SESSIONS, JFORUM_SMILIES, JFORUM_TOPICS, JFORUM_TOPICS_WATCH, JFORUM_USERS, JFORUM_VOTE_VOTERS, JFORUM_WORDS
  • High-uncertainty classes: 155
Benefits
  • The overall class cohesion metric (CHM) is 0.742, suggesting moderate internal cohesion within the proposed services.
  • The inter‑service fan‑in (IFN) is 2.04, indicating limited coupling between the new microservices.
  • There are zero foreign‑key crossings between services (n_fk_crossings = 0), so the decomposition does not introduce new relational coupling.
Risks
  • The system uses 18 shared database tables (e.g., JFORUM_ATTACH, JFORUM_USERS), which would become cross‑service data dependencies and may require distributed transactions.
  • Each bounded context currently has a low majority‑service share (e.g., Forum majority_share = 0.1176), meaning classes are already dispersed; further splitting could increase operational complexity.
  • Several classes have high uncertainty entropy (entropy_norm = 1.0) and low confidence (0.2) about their bounded‑context placement, risking incorrect allocation in the new microservices.
Services
ModerationAndContentGovernance [Moderation and Governance]: Handles moderation actions, polls, post and topic management, and logs governance activities.
GroupAndRoleManagement: Manages user groups, roles, and related permission events.
ForumRuleEngine: Evaluates and enforces forum access, creation, and editing rules.
ForumEventProcessor: Publishes and handles domain events related to content moderation and structural changes.
PostReportService: Allows users to report posts and manages the lifecycle of those reports.
AttachmentNotificationService [Notification and Subscription]: Manages file attachments, download rules, and notification/subscription logic.
+85 more services
ForumInteractionService: Provides forum browsing, search, statistics, and pagination functionalities.
BBCodeProcessing: Parses and formats BBCode markup used in forum posts.
ForumStructure: Represents and manages the hierarchy of categories and forums.
TemplateRendering: Renders UI components and formats messages using tags and i18n resources.
UserAndForumData [Forum, User Management]: Provides data access and services for users, posts, topics, moderation logs, and configuration.
PrivateMessaging: Handles sending, receiving, and storing private messages between users.
PostEditInterception: Applies validation and security rules during post editing and session handling.
QueryCacheManagement: Manages query caching and eviction policies to improve performance.
SpringFactoryBeans: Supplies Spring beans for HTTP request/response handling and role management integration.
TopicWatchService: Allows users to watch topics and receive update notifications.
RssFeedService: Generates and serves RSS feeds for forum content.
SecurityInterception: Enforces access control via controller and method security interceptors.
ConfigurationService: Exposes configuration management endpoints and business logic.
SearchRepository: Handles search query processing and persistence for forum content.
ForumDataAnalytics: Provides persistence and statistical insights for forum entities.
PollPersistenceService: Manages generic data access and storage of poll information.
MessageSpammingEngine: Generates and dispatches automated spam messages for activation, password recovery, private messaging, and topic replies.
RecentTopicFiltering: Retrieves recent topics and applies configurable filters for presentation.
UserSessionManagement: Handles creation, validation, and termination of user sessions.
AvatarAdministration [Configuration and Administration]: Manages avatar assets, repository operations, and administrative controls.
ForumEventListening: Listens to, aggregates, and forwards forum domain events to interested components.
ForumExceptionHandling: Centralizes handling and translation of forum‑specific exceptions.
ImportResponseProcessing: Wraps import file tags and formats responses for import operations.
SafeHtmlFormatting: Formats and sanitizes HTML attributes and tags to ensure safe rendering.
RequestOperationPipeline: Chains and executes request operations in a defined processing pipeline.
SmilieAdministration: Manages emoticon (smilie) assets and provides administrative interfaces.
RankingAdministration: Calculates user rankings and offers admin controls for ranking settings.
ForumLimitedTimeExtension: Handles time‑limited forum extensions and related admin configuration.
SpammerTaskEngine: Creates and executes spammer tasks, including topic reply spamming events.
CategoryAdministration: Provides administrative operations for managing forum categories.
ForumActionService: Encapsulates reusable forum actions for controllers and UI components.
ApprovalInfoService: Stores and supplies approval metadata for content moderation workflows.
DomainModelService: Represents core domain model definitions and utilities.
AnnotationInterceptor: Intercepts and processes extended annotations at runtime.
ForumExecutionContext: Provides a thread‑local execution context that stores request‑scoped data for forum operations.
AdminInterfaceService: Exposes administrative web endpoints for managing forum configuration and system settings.
BadWordManagement: Enables administrators to maintain the list of prohibited words used for content filtering.
HibernateMetricsService: Collects and serves runtime statistics from the Hibernate ORM layer for monitoring performance.
LuceneAdministration: Offers administrative controls for managing Lucene search indexes and related settings.
MessageHandlingService: Handles creation, retrieval, and processing of forum messages through controller actions.
SessionFactoryProvision: Creates and configures Hibernate SessionFactory instances for database interaction.
SpringInterception: Intercepts Spring framework calls to apply cross‑cutting concerns such as logging or security.
SpringSessionFactoryIntegration: Integrates Spring-managed SessionFactory with the forum's persistence layer.
UtilityFunctionsService: Provides reusable utility functions used across various forum components.
UrlTagRendering: Renders URL tags within templates, converting them to proper hyperlink markup.
PageRedirectFilter: Filters incoming requests to redirect legacy page extensions to their current URLs.
UrlPatternService: Defines and matches URL patterns for routing and link generation.
UserSessionEventListener: Listens to user session lifecycle events to trigger custom processing on login and logout.
VraptorPathResolver: Resolves custom request paths for the VRaptor MVC framework.
VraptorSpringIntegration: Supplies Spring beans to VRaptor, enabling dependency injection within controllers.
PaginationService: Calculates pagination metadata and slices result sets for paged displays.
AttachmentExtensionService: Manages allowed file extensions for forum attachments.
AttachmentExtensionGroupService: Groups attachment extensions into categories for permission and validation purposes.
AttachmentQuotaService: Enforces quota limits on the total size of attachments per user or forum.
BanlistManagement: Manages the list of banned users and IP addresses, providing add, remove, and lookup operations.
SystemConfigProvider: Provides access to system-wide configuration settings and runtime parameters.
ForumActivityMonitor: Monitors forum-wide events and activity for user watch subscriptions.
ModerationLogCatalog: Maintains definitions and categorization of moderation log entry types.
PollOptionService: Handles creation, retrieval, and management of poll answer options.
PrivateMessageTypeService: Manages classification and metadata of private message categories.
UserRankingEngine: Calculates and updates user ranking scores based on activity metrics.
SmilieCatalogService: Provides lookup and management of smilie definitions and assets.
ThemeManagement: Manages forum visual themes, including selection, customization, and activation.
ActionExtensionService: Coordinates registration and execution of custom action extensions within the forum.
HtmlEntityFormatter: Converts special characters to HTML entity representations for safe rendering.
NewLineBreakFormatter: Transforms plain text newline characters into HTML
tags.
PostFormattingService: Applies a pipeline of formatters to transform raw post content into display‑ready HTML.
PostOptionsService: Manages configurable options and flags associated with forum posts.
SmiliesFormattingService: Replaces smilie codes in post text with corresponding image markup.
AdministrationRuleService: Defines and enforces administrative rules governing forum operations.
DefaultLoginAuthenticator: Authenticates users using the default login mechanism and credential verification.
RemoteUserSsoService: Integrates remote user single sign‑on authentication into the forum.
EmailSenderTask: Executes asynchronous email sending jobs for notifications and alerts.
MessageIdGenerator: Generates unique identifiers for forum messages and private communications.
CategoryOrderSorting: Determines the display order of forum categories by comparing their sorting criteria.
ConfigurationKeyRegistry: Provides a centralized registry of configuration key identifiers used throughout the forum.
InternationalizationSupportService: Offers locale-aware translation utilities for internationalizing forum messages and UI text.
ImageMetadataService: Manages retrieval and representation of image metadata such as dimensions, type, and size.
ImageProcessingUtilities: Delivers common image manipulation functions including resizing, format conversion, and validation.
ForumConfigurationProvider: Supplies runtime configuration values and settings specific to the JForum application.
Md5HashingService: Generates MD5 hash strings for data integrity checks and security purposes.
SafeHtmlSanitizer: Cleans and sanitizes HTML content to ensure it is safe from XSS attacks.
SecurityConstantsCatalog: Centralizes definitions of security-related constant values for authentication and authorization.
UrlConstructionService: Constructs application URLs from parameters and routing rules to ensure consistent link generation.
FileUploadUtilities: Provides helper methods for validating, processing, and storing uploaded files.
Services & data

Pairwise comparisons

1↔21↔31↔41↔51↔62↔32↔42↔52↔63↔43↔53↔64↔54↔65↔6
Exemplar 1 vs Exemplar 2
B raises cohesion metrics (CHM +0.013199, CHD +0.05279, SMQ +0.003768, CMQ +0.028149) compared to A. However, B increases coupling and distributed‑transaction risk, with IRN +46 (to be minimized), penalty_swm +0.006709, NMI_filtered –0.021752, pen_data +0.102896, and adds one shared table. B also breaks the "Moderation and Governance" bounded context and moves 49 classes across services, indicating a substantial restructuring.
Interface count+0.0000
Msg cohesion+0.0132
Domain cohesion+0.0528
Inter-svc calls+46.0000
Structural MQ+0.0038
Conceptual MQ+0.0281
BC penalty+0.0067
NMI (BC align.)-0.0218
Data ownership+0.1029
  • Classes moved: 49
  • BCs fixed (A→B): —
  • BCs broken (A→B): Moderation and Governance
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 1 vs Exemplar 3
Decomposition B moves 37 classes into different services, improves cohesion (CHM +0.0148, CHD +0.0368) and modularity (CMQ +0.0477) while reducing inter‑service foreign keys (IFN –0.199) and penalty_swm (–0.0127). However B increases inter‑service relationship noise (IRN +131), lowers service‑level query quality (SMQ –0.0234), raises data penalty (pen_data +0.141), adds two shared tables, and it breaks the Moderation and Governance bounded context.
Interface count-0.1988
Msg cohesion+0.0148
Domain cohesion+0.0368
Inter-svc calls+131.0000
Structural MQ-0.0234
Conceptual MQ+0.0477
BC penalty-0.0127
NMI (BC align.)+0.0357
Data ownership+0.1412
  • Classes moved: 37
  • BCs fixed (A→B): —
  • BCs broken (A→B): Moderation and Governance
  • Δ FK crossings: +0
  • Δ shared tables: +2
Exemplar 1 vs Exemplar 4
B moves 57 classes into different services, increasing shared tables by 2 and breaking the "Moderation and Governance" bounded context. It improves cohesion (CHM +0.0327, CHD +0.0257, CMQ +0.0039) and reduces IFN (-0.508) and penalty_swm (-0.0118), but worsens IRN (+321), SMQ (-0.0135) and pen_data (+1.253).
Interface count-0.5079
Msg cohesion+0.0327
Domain cohesion+0.0257
Inter-svc calls+321.0000
Structural MQ-0.0135
Conceptual MQ+0.0039
BC penalty-0.0118
NMI (BC align.)+0.0387
Data ownership+1.2527
  • Classes moved: 57
  • BCs fixed (A→B): —
  • BCs broken (A→B): Moderation and Governance
  • Δ FK crossings: +0
  • Δ shared tables: +2
Exemplar 1 vs Exemplar 5
Interface count-0.4396
Msg cohesion+0.0054
Domain cohesion+0.0068
Inter-svc calls+219.0000
Structural MQ-0.0249
Conceptual MQ+0.0714
BC penalty-0.0095
NMI (BC align.)+0.0264
Data ownership+0.7748
  • Classes moved: 52
  • BCs fixed (A→B): —
  • BCs broken (A→B): Moderation and Governance
  • Δ FK crossings: +0
  • Δ shared tables: +2
Exemplar 1 vs Exemplar 6
Interface count-0.2440
Msg cohesion+0.0725
Domain cohesion+0.0081
Inter-svc calls+553.0000
Structural MQ-0.1576
Conceptual MQ+0.3765
BC penalty-0.0247
NMI (BC align.)+0.0302
Data ownership+1.9118
  • Classes moved: 107
  • BCs fixed (A→B): —
  • BCs broken (A→B): Moderation and Governance
  • Δ FK crossings: +0
  • Δ shared tables: +3
Exemplar 2 vs Exemplar 3
Compared to decomposition A, B moves 44 classes between services, adds one additional shared database table, and leaves foreign‑key crossing count unchanged. B improves interface fan‑in (IFN −0.199, direction minimize), cohesion‑measure (CHM +0.0016, direction maximize) and reduces the service‑wide penalty (penalty_swm −0.0194), but degrades inter‑service remote calls (IRN +85, direction minimize), cohesion‑depth (CHD −0.016), service‑level quality (SMQ −0.0272), and data penalty (pen_data +0.0383).
Interface count-0.1988
Msg cohesion+0.0016
Domain cohesion-0.0160
Inter-svc calls+85.0000
Structural MQ-0.0272
Conceptual MQ+0.0195
BC penalty-0.0194
NMI (BC align.)+0.0575
Data ownership+0.0383
  • Classes moved: 44
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 2 vs Exemplar 4
B moves 55 classes, improving IFN, CHM, penalty_swm and NMI_filtered while degrading CHD, IRN, SMQ, CMQ and pen_data, and adds one shared table. The trade‑off yields lower inter‑service foreign‑key exposure at the cost of higher distributed transaction risk and reduced cohesion.
Interface count-0.5079
Msg cohesion+0.0195
Domain cohesion-0.0271
Inter-svc calls+275.0000
Structural MQ-0.0172
Conceptual MQ-0.0243
BC penalty-0.0185
NMI (BC align.)+0.0604
Data ownership+1.1498
  • Classes moved: 55
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 2 vs Exemplar 5
Interface count-0.4396
Msg cohesion-0.0078
Domain cohesion-0.0460
Inter-svc calls+173.0000
Structural MQ-0.0287
Conceptual MQ+0.0432
BC penalty-0.0162
NMI (BC align.)+0.0482
Data ownership+0.6719
  • Classes moved: 54
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 2 vs Exemplar 6
Interface count-0.2440
Msg cohesion+0.0593
Domain cohesion-0.0447
Inter-svc calls+507.0000
Structural MQ-0.1614
Conceptual MQ+0.3483
BC penalty-0.0314
NMI (BC align.)+0.0520
Data ownership+1.8089
  • Classes moved: 114
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +2
Exemplar 3 vs Exemplar 4
Decomposition B relocates 45 classes across services, eliminating foreign‑key crossings but raising the inter‑service relationship count by 190. It improves interface granularity (IFN −0.31) and several cohesion metrics (CHM +0.018, SMQ +0.010, NMI +0.003) while degrading other cohesion measures (CHD −0.011, CMQ −0.044) and increasing penalty metrics (penalty_swm +0.001, pen_data +1.112).
Interface count-0.3092
Msg cohesion+0.0179
Domain cohesion-0.0111
Inter-svc calls+190.0000
Structural MQ+0.0099
Conceptual MQ-0.0438
BC penalty+0.0009
NMI (BC align.)+0.0029
Data ownership+1.1115
  • Classes moved: 45
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +0
Exemplar 3 vs Exemplar 5
Interface count-0.2408
Msg cohesion-0.0094
Domain cohesion-0.0300
Inter-svc calls+88.0000
Structural MQ-0.0015
Conceptual MQ+0.0237
BC penalty+0.0032
NMI (BC align.)-0.0093
Data ownership+0.6336
  • Classes moved: 35
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +0
Exemplar 3 vs Exemplar 6
Interface count-0.0453
Msg cohesion+0.0577
Domain cohesion-0.0287
Inter-svc calls+422.0000
Structural MQ-0.1342
Conceptual MQ+0.3288
BC penalty-0.0120
NMI (BC align.)-0.0055
Data ownership+1.7706
  • Classes moved: 108
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 4 vs Exemplar 5
Interface count+0.0684
Msg cohesion-0.0273
Domain cohesion-0.0189
Inter-svc calls-102.0000
Structural MQ-0.0115
Conceptual MQ+0.0675
BC penalty+0.0023
NMI (BC align.)-0.0123
Data ownership-0.4779
  • Classes moved: 23
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +0
Exemplar 4 vs Exemplar 6
Interface count+0.2639
Msg cohesion+0.0398
Domain cohesion-0.0176
Inter-svc calls+232.0000
Structural MQ-0.1441
Conceptual MQ+0.3726
BC penalty-0.0129
NMI (BC align.)-0.0084
Data ownership+0.6591
  • Classes moved: 105
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1
Exemplar 5 vs Exemplar 6
Interface count+0.1955
Msg cohesion+0.0671
Domain cohesion+0.0013
Inter-svc calls+334.0000
Structural MQ-0.1327
Conceptual MQ+0.3051
BC penalty-0.0152
NMI (BC align.)+0.0038
Data ownership+1.1370
  • Classes moved: 102
  • BCs fixed (A→B): —
  • BCs broken (A→B): —
  • Δ FK crossings: +0
  • Δ shared tables: +1