Architecture & Infrastructure
Flowtaris operates on a decoupled, event-driven topology. The objective is to eliminate synchronous, point-to-point connections between core enterprise systems (e.g., SAP, NetSuite, Salesforce) to prevent cascading failures during localized outages.

1. Core Message Broker
We utilize distributed message brokers (Kafka or Azure Service Bus) as the central nervous system. Instead of System A directly calling System B via REST, System A publishes a domain event (e.g., InvoiceCreated). This guarantees delivery. If the receiving ERP is undergoing maintenance, the broker retains the payload in a persistent queue. Upon restoration, the consumer resumes processing from its last committed offset.
2. Observability & Tracing Sidecars
Observability is not injected into the business logic. We deploy OpenTelemetry sidecars that run alongside the integration workloads. These sidecars intercept ingress/egress traffic to compute schema diffs and measure execution latency. The telemetry is shipped out-of-band to our central data lake via UDP or gRPC, ensuring the primary execution thread is never blocked by logging overhead.
3. Idempotency & Replayability
Network partitions happen. To handle retries safely, every consumer in our architecture is strictly idempotent. Payloads are tagged with a unique, cryptographically generated `Idempotency-Key` and stored in a state table (Redis/DynamoDB) for 24 hours. If a webhook is fired twice due to a network timeout, the database rejects the duplicate transaction. This is critical for preventing double-billing in financial integrations.
4. Security Posture
All data in transit is encrypted using TLS 1.3. For data at rest within the broker, we rely on AES-256 encryption. We do not store static credentials in application configurations. Services authenticate using short-lived, rotation-based tokens via AWS IAM or HashiCorp Vault. Client payloads can be encrypted using Customer-Managed Keys (CMK), ensuring that even our infrastructure cannot decrypt sensitive payload fields without explicit permission.
