Logical Endpoint Design: System Boundary vs Business Capability Boundary

Hi, I am currently working on a multi-system integration project where several business systems need to communicate with SAP. The first phase of this project is to build an integration system between a WMS and SAP.

After learning about messaging frameworks, I am considering using NServiceBus. I have been reading through the official documentation, but I still have some questions regarding Logical Endpoint design.

I would like to share my current understanding and would appreciate any advice or experience from the community, people who have designed similar integration platforms.

For the WMS-SAP integration scenario, the main business areas may include:

  • Inbound processing
  • Outbound processing
  • Data Synchronization
  • Inventory management
  • Miscellaneous operations

At the moment, I am considering two possible approaches.

Option 1: Based on systems

  • WMS Endpoint
  • SAP Endpoint

This approach is easier for me to understand because when a new external system is introduced in the future, I can add a new endpoint based on the system boundary.

However, I am concerned about scalability.

For example, if one specific WMS business process becomes slow or requires independent scaling in the future, would I eventually need to split it into a separate logical endpoint?

If so, the original “system-based endpoint design” may become difficult to maintain.

Option 2: Based on business capabilities

  • WMS-Inbound Endpoint
  • WMS-Outbound Endpoint
  • Data-Sync Endpoint
  • Inventory Management Endpoint
  • Misc-Operation Endpoint

This seems to provide better isolation between different business areas.

However, I am concerned about creating too many endpoints. Since Logical Endpoints also have licensing and operational considerations, excessive fragmentation may introduce unnecessary complexity.

Based on mu current understanding, a Logical Endpoint should represent a boundary that requires:

  • Independent message queue
  • Independent deployment
  • Independent scaling
  • Independent failure isolation

With this understanding, I am wondering whether both approaches above are too extreme.

My current idea is to start like:

  • WMS-Operation Endpoint
  • WMS-Sync Endpoint

The reason is that the current WMS message throughput is small (less than 10,000 messages/day), so this may provide a reasonable balance between isolation and simplicity.

My questions are:

  1. What principles do you usually follow when defining Logical Endpoint boundaries?
  2. Should endpoints normally align with business capabilities, technical responsibilities, or external systems?

I would really appreciate any advice, best practices, or examples from your experience.

Thank you!