- By executing Lerna’s scripts to VMs running on the cloud (public or private), you can build an environment that is configured to achieve high availability and high throughput.
- In that environment, designing and implementing applications based on the actor model (Akka) and CQRS(Command Query Responsibility Segregation) with Event Sourcing architecture allows you to build highly available systems.
- Libraries and reference implementations for design and implementation are provided.
Concept
High availability and high throughput
- Eliminates the bottleneck of writing to the RDBMS by applying the CQRS with Event Sourcing architecture to the application layer
- High Availability and Scalability with Akka Cluster
- Provides responsiveness by making the application stateful, while providing fast failover with guaranteed consistency using Raft
- Benchmark test report of Lerna available here
Platform independent
- Fast failover at the middleware and application layers with platform independence, based on the premise that the server (VM) will stop.
- This ensures high availability independent of hardware and specific cloud environments
Low cost and fast delivery
- No need to purchase expensive high-availability servers; high availability can be achieved at low cost by using OSS middleware.
- Because it can be built on the cloud, it reduces the lead time for hardware procurement and improves delivery speed.
Contents
Name | Description |
---|---|
application template | a template for creating a new project |
Terraform scripts | scripts to build the environment |
learning content | hands-on content learning Akka and Scala with Lerna |
system design documents | documentation for developing with Lerna |
application libraries | libraries for developing applications that run on Lerna Stack ( API Doc ) |
sample application | a sample application for developing with Lerna application libraries |
HA library | Akka extension for fast recovery from failure with replicating stateful entity on multiple nodes in Cluster. ( API Doc ) |
benchmark report for Lerna | a benchmark report measuring availability and throughput of Lerna |
sample application for HA library (Minimum) | a sample application for developing with HA library |
sample application for HA library (Bank Account) | a sample application that manages bank account balances for developing with HA library |
batch parallelization library | a library for parallelizing batch processing with Nablarch Batch Framework |
sample application for batch library | a sample application for developing with batch parallelization library |
benchmark report for batch library | a report testing speed improvement effect by parallelizing processing using batch parallelization library |
Getting started
Articles
- Does parallelizing batch processing in Lerna make it linearly faster? (Fintan)
- The paradigm of the many-core era; Learn about reactive systems. (ThinkIT)
Slides
License
This content is compliant with Apache License 2.0.
* The names of the companies and products described in this site are trademarks or registered trademarks of the respective companies.
* Amazon Web Services, AWS are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.
* Akka is a trademark of Lightbend, Inc.
© 2020 TIS Inc.