Từ góc độ thiết kế API, khi quyết định thực hiện nhiều chương trình giao tiếp riêng biệt hay chỉ một chương trình, câu hỏi đặt ra là: mỗi chương trình có thể hoạt động một cách có ý nghĩa mà không cần các chương trình khác không? Câu trả lời sẽ thay đổi dựa trên dự án và sở thích của bạn.
Nếu họ không thể , nó không đáng suy nghĩ. Rõ ràng là chúng được liên kết rất nhiều đến nỗi chúng không thực sự là các quá trình riêng biệt.
Nếu họ có thể , và bạn có thể thấy mình muốn thả các thành phần khác nhau để thay thế chúng trong tương lai, thì một sự trừu tượng hóa quy trình do hệ điều hành cung cấp có thể giúp ích.
Nó giúp được bao nhiêu tùy thuộc vào phần còn lại của ngăn xếp công nghệ của bạn. Ví dụ, Erlang nội bộ mô hình hóa mọi thứ như các quy trình, vì vậy bạn sẽ không nhận được nhiều lợi ích về mặt khái niệm từ việc chia nó thành các quy trình HĐH. Trừ khi bạn nghĩ đến việc có thể viết lại những phần đó của máy chủ bằng một ngôn ngữ khác. Các thành phần bên trong của chương trình C ++ thường được ghép nối chặt chẽ hơn nhiều và do đó khó trao đổi hơn, do đó việc chia chúng thành các quy trình HĐH khác nhau có thể giúp bạn tiết kiệm công việc sau này nếu bạn có thể thấy trước các sắp xếp lại như vậy.