Prerequisites & Hardware Sizing

Software

Connexion will run on any Windows platform which supports the .NET 4.8 (or higher) framework and SQL Server 2014, or higher. This means that Windows XP and Windows 2003 Server are NOT supported since Microsoft does not support .NET 4.8 on these platforms.

 
Microsoft SQL Server 2014, or higher must be installed prior to installing Connexion. Connexion provides great performance with the free Express edition of SQL Server, however, before choosing to use the Express edition, please read about its hardware and database size limitations. [Limitations] [Download].
 
SQL Server does not need to be installed on the same machine as Connexion.

Hardware - Summary

Connexion has no minimum hardware check during installation, and does not require heavy-weight hardware to give an adequate performance. We generally recommend a quad-core CPU, 4 gigabytes of memory, and 30 gigabytes of free space as adequate for simpler systems. If you require high-performance, many channels, complex channels, or will be processing large messages (MB instead of KB) then read the 'Hardware - Advanced' section below or contact Inner Harbor Software for recommendations.

Hardware - Advanced

It is difficult to provide specific hardware recommendations in this document, as there are many variables to consider when sizing systems. If you need help specifying hardware, please contact Inner Harbor Software.

The following should be considered when sizing hardware for Connexion:

  • Number of Channels: Are you expecting to run 5 channels or 100? If you will be using the 'execution groups' feature of Connexion to isolate channels, an extra ~100 MB of memory will be required per group.
  • Channel Complexity: Are your channels performing simple operations like reading/writing HL7 and simple transformations, or are you performing heavy string manipulation or running complex database queries?
  • Message Composition: Are the messages you are processing 100K or 30MB? Memory requirements increase dramatically as message size increases.
  • Performance Expectations: What is the expected peak load? Do you have latency requirements?
  • Redundancy: Additional resources will be required if you are using one of SQL Server's fail-over features (mirroring, always-on, etc.)

For a typical install of up to 10 simple channels, processing a typical message stream (< 100K / message), we would recommend an absolute minimum of 2 gigabytes of memory and 2 logical cores for systems not running SQL Server. Systems running Connexion and SQL Server should have a minimum of 4 gigabytes of memory and 4 physical cores.

As the channel count, channel complexity, message size, and performance requirements increase, so should your memory and processor power.

Storage

By default, Connexion stores each received message as well as relevant processing metadata for 120 days (the message retention period is user-configurable). The actual size-on-disk of each stored message will be dependent on how much processing metadata is being stored with the message (by default, a copy of the message will be stored each time it is changed by a device). A rough estimate of required free space can be calculated by multiplying the expected message size, expected message volume (for all channels) per day, and message retention period. You should multiply the result by the number of devices that change the message. For example, a channel containing a transform device will store a copy of the transformed message, and therefore be storing both the original message and the updated one.

Disk Performance

Database / Disk IO is typically the bottleneck for Connexion throughput. High-performance systems should consider investing in high throughput disk subsystems such as SSD RAID or PCI-based SSD solutions.

Memory

SQL Server will use free memory to load much of Connexion's database and reduce the number of relatively slow paging operations. The more memory, the better, although some versions of SQL Server may have hard memory usage limits.

CPU

For systems with few channels, higher clock speeds usually provide better performance. For systems with many channels, higher core counts usually provide better overall performance.

Virtual Environments

Connexion supports installation and operation in virtual environments. These can be useful for testing and staging purposes. While Connexion can be deployed in production using virtual machines, there will be performance penalties due to the reduced I/O capabilities of shared resources.