Follow these general principles to provide convenience and clearness for users.
- purpose focused. It`s better to create several components with clear properties for specific tasks than one general multitask component with confusing options;
- simple to use. Provide clear naming, sufficient help explanations, avoid complexity;
- prepared. The component must adequately handle all types of message properties data - boolean, number, string, buffer, object, array, or null;
- predictable. Document and make the component to provide documented doings with message properties - the result must comply with the promises;
- controlled. The component must catch errors or register error handlers for any asynchronous calls it makes, wherever possible.