I have several Business Operations that share similar behavior, like building HTTP headers or parsing a specific response format. In C# I would extract this into a service class or a base class. What is the recommended way to do this in IRIS? Should I use a utility class, a common superclass, or is there another pattern the community prefers?
I have a Business Process that needs to call an external API that may take several seconds to respond. I'm worried that keeping the BP blocked waiting for the response could affect the overall Production throughput. Is there a recommended pattern for handling async calls inside a BPL or custom BP class to avoid this kind of bottleneck?
What tools or techniques do you use to debug a Production during development? I know the Management Portal shows the message queue and event log, but I'm wondering if there are better ways to trace a message through the full BS > BP > BO flow without relying only on logs.
What is the recommended way to handle errors inside a Business Process in IRIS? Should I use Try/Catch within the BPL, return error responses to the caller, or rely on the built-in retry mechanism of the Production? Looking for guidance on what's considered good practice.
When building a Production, should I create separate message classes for each integration flow, or is it acceptable to reuse generic request/response classes across different Business Operations? I'm trying to understand how to keep things organized as the number of integrations grows.
For those who learned Caché ObjectScript from scratch: what kind of personal or practice projects did you build to get comfortable with the language? I come from a C# background and I'm looking for project ideas that are small enough to be feasible but meaningful enough to actually teach the core COS concepts.