Every fintech system eventually faces a fork in the road: which workflow model should handle the money-moving logic? The answer isn't a universal 'use streaming for everything' or 'batch is dead.' Different financial processes—payment authorization, settlement, fraud scoring, regulatory reporting—demand different conceptual approaches to state, timing, and failure handling. This guide maps the major paradigms and gives you a repeatable framework for choosing.
Why Workflow Models Matter More Than Ever in Fintech
Financial technology operates under constraints that most software doesn't. A payment can't be 'eventually consistent' if the customer is waiting at a checkout screen. A trade settlement can't lose a single message. And a regulatory report that's five minutes late can trigger a fine. These pressures mean that the workflow model you choose directly shapes your system's reliability, auditability, and cost.
Teams often default to the pattern they know best—a background job queue for everything, or a Kafka stream for everything—without asking whether the model fits the specific financial operation. The result is either over-engineered latency (using streaming where a simple batch would do) or under-engineered reliability (using batch where real-time state is critical).
The Three Dimensions of Comparison
To compare workflow models conceptually, we look at three axes: state management (how does the system remember where it is?), latency tolerance (how fast must a result be produced?), and failure semantics (what happens when something breaks mid-process?). Each paradigm optimizes for a different point in this space.
Who This Guide Is For
This is for platform engineers, solution architects, and technical leads who are evaluating or redesigning a fintech backend. We assume you're familiar with basic messaging patterns but want a higher-level comparison to make architectural decisions. We won't prescribe a single 'best' model—we'll give you the criteria to decide for your context.
The Core Paradigms: Event-Driven, Batch, Streaming, and Hybrid
Let's define each model in plain language, focusing on the conceptual mechanism rather than specific technologies. The goal is to understand what each paradigm assumes about time, order, and failure.
Event-Driven Workflows
In an event-driven model, each step in a workflow is triggered by an event from a previous step or an external system. The workflow is a chain of handlers that react to events as they occur. State is typically stored in a database or a durable event log, and the system guarantees at-least-once delivery. This model shines when processes are long-running and require human intervention—think loan origination or KYC verification. The downside is that debugging a chain of events can be like tracing a spiderweb; you need good observability.
Batch Processing
Batch processing collects data over a window (e.g., end of day) and processes it in a single job. It's the oldest model in fintech, used for things like settlement files, interest calculations, and regulatory reporting. The key advantage is simplicity and cost: you can process millions of records with a single pass. The trade-off is latency—you can't get a result until the batch completes. Batch also struggles with partial failures: if one record fails, do you retry the whole batch or just that record? Most modern batch systems support record-level retries, but the conceptual model remains 'process all at once.'
Streaming Workflows
Streaming processes each event as it arrives, with sub-second latency. State is maintained in-memory or in fast key-value stores, and the system provides exactly-once or at-least-once semantics. Streaming is ideal for fraud detection, real-time payment authorization, and market data feeds. The cost is operational complexity: you need to manage partitions, checkpoints, and backpressure. Streaming also assumes events are ordered within a partition, which can be tricky in distributed systems.
Hybrid Approaches
Most real-world fintech systems are hybrids. A common pattern is 'streaming for authorization, batch for settlement.' Another is 'event-driven for the workflow orchestration, batch for the heavy computation.' The hybrid model tries to get the best of both worlds, but it adds integration complexity—you now have two paradigms to maintain and reconcile.
How the Paradigms Handle State, Latency, and Failure
To make the comparison concrete, let's examine how each paradigm handles three critical aspects of fintech workflows.
State Management
Event-driven workflows store state in a database or event store, often using a saga pattern to coordinate distributed transactions. Batch processes typically load all relevant state into memory at the start of the job. Streaming workflows keep state in a compacted topic or a state store, updated incrementally. The choice affects recovery: if a batch job fails mid-way, you can restart from the beginning or from a checkpoint. If a streaming processor fails, it must rebuild state from the event log, which can take time.
Latency and Throughput
Batch is inherently high-latency (minutes to hours) but can achieve very high throughput because it processes data in bulk. Streaming offers low latency (milliseconds to seconds) but throughput is limited by per-event processing overhead. Event-driven sits in the middle—latency depends on how quickly events are consumed, but throughput can be high if handlers are asynchronous. The mismatch between latency requirements and paradigm choice is a common source of architectural pain.
Failure Semantics
In batch, a failure means the entire batch may need to be reprocessed unless you have record-level error handling. Streaming systems use checkpointing and replay—if a processor crashes, it can resume from the last committed offset. Event-driven systems rely on retry queues and dead-letter topics. Each approach has a different 'blast radius' for failures. Batch failures are visible and loud; streaming failures can be silent if not monitored properly.
A Worked Example: Payment Reconciliation
Let's ground the comparison with a concrete scenario: reconciling payments between a merchant's records and the bank's settlement file. Reconciliation is a classic fintech batch process, but modern teams often try to stream it.
The Scenario
You have 500,000 payments per day. At the end of each day, you receive a settlement file from the bank. You need to match each payment in your database to a line in the settlement file, flag mismatches, and trigger corrections. The SLA is T+1 (next business day).
Batch Approach
At midnight, a scheduled job loads all payments from the database and all lines from the settlement file. It performs a hash join in memory and writes matched and unmatched records to output tables. If the job fails, you restart it. This is simple, cheap, and easy to audit—you can log exactly what was processed. The downside: if a mismatch requires real-time action (e.g., a payment that settled but wasn't recorded), you won't know until the next batch.
Streaming Approach
Instead of waiting for end-of-day, you stream each payment settlement event from the bank as it arrives (assuming the bank provides a real-time feed). Your streaming processor updates a running reconciliation state. When a payment is settled, it immediately matches against the merchant's record. This provides near-real-time visibility. But the operational cost is higher: you need to handle late-arriving events, out-of-order settlements, and reprocessing after a crash. And if the bank only sends a batch file anyway, streaming adds no value.
Hybrid Recommendation
For most reconciliation use cases, a hybrid works best: stream the high-value or time-sensitive payments (e.g., above $10,000) and batch the rest. This gives you real-time alerts for large discrepancies without the complexity of streaming all 500,000 records. The decision criteria are the value of timeliness versus the cost of infrastructure.
Edge Cases and Exceptions
No workflow model is perfect for every edge case. Here are three scenarios where the conceptual model can break down, and how to adjust.
Regulatory Reporting with Strict Deadlines
Regulatory reports (e.g., suspicious activity reports) have hard deadlines—often within 30 days of the transaction. A batch model that runs weekly might miss the window if data arrives late. Streaming can ensure that every transaction is evaluated immediately, but regulators also require an audit trail. The solution is often a streaming pipeline that feeds a batch report generator: stream for early detection, batch for the final submission.
Fraud Detection with High False Positive Rates
Streaming fraud models often flag too many transactions as suspicious. If you reject every flagged transaction, you harm good customers. If you queue them for manual review, you need an event-driven workflow that can pause and wait for human decision. The batch model (review all flags at end of day) is too slow. The event-driven model with a human-in-the-loop is the right fit, but it requires careful state management to ensure that a flagged transaction isn't forgotten.
Multi-Currency Settlement with FX Lags
When settling cross-border payments, the FX rate is often locked at the time of payment but the actual settlement happens days later. A streaming model that processes the settlement event immediately might use a stale rate. A batch model that waits for all rates to be finalized is safer. The edge case is partial settlements: a payment might settle in one currency but not another. An event-driven saga can handle this by compensating transactions if the FX rate changes.
Limits of the Approach and When to Break the Rules
Conceptual comparisons are useful, but they have limits. Here's what the framework doesn't tell you, and when you should deviate.
Technology Specifics Matter
The paradigm is only half the story. A batch job using Apache Spark behaves very differently from a batch job using a simple cron script. A streaming system based on Kafka Streams has different guarantees than one based on Flink. The conceptual model helps you choose the class of solution, but you still need to evaluate specific implementations for durability, throughput, and operational maturity.
Cost and Team Expertise
Sometimes the 'right' paradigm is the one your team can operate. If your team has deep experience with batch processing but none with streaming, a hybrid approach that introduces streaming for a small critical path might be better than a full streaming rewrite. The conceptual comparison should be a guide, not a dogma.
The 'No Workflow' Option
Not every fintech process needs a workflow. Simple request-response (e.g., a balance check) can be handled with a synchronous API call. Over-engineering a workflow where a direct call suffices adds latency and complexity. Use the workflow paradigm only when you need orchestration, retry, or state across multiple steps.
Next Moves
Start by mapping your existing fintech processes to the three axes: state, latency, failure. For each process, identify the minimum latency requirement and the tolerance for inconsistency. Then pick the simplest paradigm that meets those requirements. Build a small proof-of-concept with the chosen paradigm before committing to a full migration. Finally, instrument your workflows with metrics for latency, error rates, and state size—these numbers will tell you when your paradigm choice needs revisiting.
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!