# Handling Events
LDK requires that you handle many different events throughout your app's life cycle. You can learn more by reading about our event-driven architecture.
To start handling events in your application, run:
- Rust
- Kotlin
- Swift
use lightning::util::events::{Event};
// In the event handler passed to BackgroundProcessor::start
match event {
Event::PaymentSent { payment_preimage } => {
// Handle successful payment
}
Event::PaymentFailed { payment_hash, rejected_by_dest } => {
// Handle failed payment
}
Event::FundingGenerationReady { .. } => {
// Generate the funding transaction for the channel
}
}
References: Rust Event
docs (opens new window), Java/Kotlin Event
bindings (opens new window)