Distributed applications are complex enough — your data layer shouldn't be
Streamline Application Development with Kurrent
Kurrent provides a simpler way to develop applications without sacrificing context, scalability or consistency
Kurrent makes it easier for developers to build modern applications without the typical overhead
Simplify your architecture
Eliminate the complexity of juggling multiple technologies (e.g. databases, brokers, etc.) by unifying data storage and streaming in a single, purpose-built system
Ensure consistency
Ensure events can be replayed and published in the correct order and are never lost or duplicated
Preserve data integrity
Maintain complete fidelity of your application data without compromising its structure or meaning to fit various data models or schemas
Focus on core business logic
Reduce the burden of writing translation layers between your domain model and data models, letting you concentrate on what matters
Streamline operations
Replace complex message broker configurations and outbox patterns with a streamlined, event-first architecture that eliminates the dual-write problem
Development teams face increasing challenges building and managing distributed applications
Modern application development demands reliable data synchronization across services, but developers face significant challenges that slow down development and introduce complexity.
- Difficult to design multiple services that don’t share a database
- Hard to understand and debug workflows or reports that span across services
- Unsynchronized data across services due to bugs or complexity from handling message ordering, loss or duplication
- Potential inconsistencies are introduced while trying to save to database and send event to a broker at the same time (i.e. the dual-writes problem)
- Downstream services have to filter out a large number of messages that are not applicable
- Wasted time and effort from writing mapping logic between domain, database and messaging models
- Forcing reads and writes to share a single data model creates unnecessary complexity, performance bottlenecks, and scaling limitations as applications evolve and data needs become more sophisticated
Microservices without the mess — scale confidently with Kurrent
Developing and managing distributed applications is much simpler with Kurrent, so you can focus on building features instead of fighting with data infrastructure. Kurrent ensures data consistency and integrity, providing a foundation that not only supports your existing architecture but scales for future use cases — even ones you haven't imagined yet.
- Enables understanding and debugging of cross-service workflows and reports with full audit trail
- Detects and alleviates distributed messaging issues such as message ordering, loss and duplication
- Decouples read and write operations from the same database model to simplify code and enable independent scaling
- Allows replaying of events for future workloads unknown at the present moment
- Simplifies your architecture with a single system for storage and streaming
- Provides reliable event distribution with "outbox out-of-the-box"
- Delivers highly curated streams to other applications/services
- Reduces the amount of unnecessary model mapping code
- Supports multiple read models (polyglot persistence) that match your exact query needs
- Ensures scalability without sacrificing consistency
Contextualizing the Kurrent State of Your Business
Core technical benefits
Simplify data modeling
Reduce the "impedance mismatch". Kurrent more closely aligns your domain and data/integration models since events are versatile and context-rich. This results in cleaner code, simpler design and eliminates the need for complex translation logic.
Eliminate the dual writes problem
Stop worrying about lost, duplicated or out-of-order events. Kurrent combines data storage and streaming in a single system. Instead of trying to coordinate separate writes to a database and message broker – which can lead to inconsistencies if either operation fails – all changes are written as events to a single authoritative log. These events then serve as both the system of record and the source for event notifications, guaranteeing consistency between storage and messaging without complex distributed transactions.
Get great support for polyglot persistence and data models
Break free from database lock-in and easily synchronize multiple databases with different data models. Each service can choose the database that best fits its specific needs. Need MongoDB for one service and Redis for another? No problem. Kurrent lets your services select the optimal database for their use case while keeping them all consistent, rather than being constrained by the database choice for your source of truth. Scale each service independently based on its actual usage patterns.
REAL-WORLD USE CASE
Streamlining order processing with Kurrent: achieving guaranteed data consistency and simplified architecture for enhanced service scalability
The challenge
- Complex business workflow for processing orders across microservices
- Data consistency issues across services
- Difficulty maintaining proper event ordering
- Complex code for handling messaging and data translation
Before Kurrent
- Required outbox patterns for reliable messaging
- Repetitive translation between domain, data, and integration models
- Locked into single database choice
- Difficult to scale read and write operations independently
With Kurrent
- Events stored directly in native format
- Automatic consistency and ordering guarantees
- Freedom to choose optimal database for each service
- Independent scaling of read and write services
Results
- Simplified architecture with fewer moving pieces
- Eliminated message broker configurations
- Guaranteed data consistency
- Easier development and maintenance
Get started with Kurrent
Start storing your business objects as events, a more fundamental unit of data that is more context-rich and aligned to the business domain. Application developers are free to map events to models that are not bound to a particular schema or database technology. Events can also be mapped to models not only bound to the current time and can time travel to the past. Kurrent reduces the reliance on centralized message brokers and complex databases that typically complicate microservice architectures. Data pipelines become short and direct with data products (or read models) being sent directly to downstream interfaces (enterprise messaging, data lake/ datamart, AI/ML, etc.).
- Your domain is naturally expressed by your data model
- Easily translate events to models not fixed to a particular schema or the current time
- Events are automatically ordered and consistent
- Choose the database that best fits each service's needs
- Expert owned data exposures and minimal downstream handling ensures high data integrity, and accuracy
- Store order events directly in their native format
- Let different services (like packing, fulfillment) read these events in ways that work best for them
- Scale each service independently based on actual needs
Don’t let the complexity of modern distributed systems slow you down
Kurrent provides a streamlined way to develop brand-new applications, reducing complexity, saving time and lowering costs from the beginning.
Without the hassle of managing complex data infrastructure, teams can focus entirely on developing applications, confident that their data will remain reliable and secure.