Component-based software systems are of the majority nowadays. When it comes down to implementation, the interaction between components is just as important as the functionality itself. When invoking a function of a component, how to pass data arguments, how to receive return results, and when to expect a return are all the questions to ask. There are so many ways in which these can be done, that it introduces the complexity in the usability of a component. We present in this article an architecture for integrating heterogeneous components across different language and binary platforms, different processes and even different machines, based on a simple message passing mechanism - the actor model, and the sharing of common and global data structures only through databases. We show the simplicity and flexibility of this architecture by re-structuring a slot machine framework, which consists of components to drive modern and legacy hardware, follows a static workflow, and changes the visual appearance quite often. We argue that this architecture with restricted implementation choices can be used in a much broader range of software systems, helping produce software components that are more independent and easy to adopt.