Giter Site home page Giter Site logo

akka / akka Goto Github PK

View Code? Open in Web Editor NEW
12.9K 580.0 3.6K 268.38 MB

Build highly concurrent, distributed, and resilient message-driven applications on the JVM

Home Page: https://akka.io

License: Other

Scala 63.88% Java 35.99% Shell 0.13% Perl 0.01% JavaScript 0.01% Makefile 0.01% Smalltalk 0.01%
reactive distributed-systems concurrency high-performance akka actor-model distributed-actors cloud-native streaming hacktoberfest

akka's Introduction

Akka

The Akka family of projects is managed by teams at Lightbend with help from the community.

We believe that writing correct concurrent & distributed, resilient and elastic applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.

Akka is here to change that.

Using the Actor Model we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. This model is a perfect match for the principles laid out in the Reactive Manifesto.

For resilience, we adopt the "Let it crash" model which the telecom industry has used with great success to build applications that self-heal and systems that never stop.

Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.

Learn more at akka.io.

Reference Documentation

The reference documentation is available at doc.akka.io, for Scala and Java.

Current versions of all Akka libraries

The current versions of all Akka libraries are listed on the Akka Dependencies page. Releases of the Akka core libraries in this repository are listed on the GitHub releases page.

Community

You can join these groups and chats to discuss and ask Akka related questions:

In addition to that, you may enjoy following:

Contributing

Contributions are very welcome!

If you see an issue that you'd like to see fixed, or want to shape out some ideas, the best way to make it happen is to help out by submitting a pull request implementing it. We welcome contributions from all, even you are not yet familiar with this project, We are happy to get you started, and will guide you through the process once you've submitted your PR.

Refer to the CONTRIBUTING.md file for more details about the workflow, and general hints on how to prepare your pull request. You can also ask for clarifications or guidance in GitHub issues directly, or in the akka/dev chat if a more real time communication would be of benefit.

License

Akka is licensed under the Business Source License 1.1, please see the Akka License FAQ.

Tests and documentation are under a separate license, see the LICENSE file in each documentation and test root directory for details.

akka's People

Contributors

2m avatar agolubev avatar bantonsson avatar captain1653 avatar chbatey avatar derekjw avatar drewhk avatar ennru avatar he-pin avatar helena avatar henrikengstrom avatar ignasi35 avatar janvanbesien avatar jboner avatar johanandren avatar jrudolph avatar kobmic avatar krasserm avatar ktoso avatar momania avatar octonato avatar patriknw avatar pvlugter avatar raboof avatar richardimaoka avatar rkuhn avatar scala-steward avatar sirthias avatar ticktock avatar viktorklang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

akka's Issues

Create MongoDB backend

MongoDB is a very fast storage system with a higher semantic than a DHT. Seems to have a lot of momentum lateley, more than Cabinet/Tyrant e.g.

EventBasedThreadPoolDispatcher blocks messages for non-busy handlers.

I've found a bug in the EventBasedThreadPoolDispatcher and created a failing test:

http://github.com/sergiob/akka/blob/a6c8382440c96097c65cae39175257f9af3ef844/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala
(see internalTestMessagesDispatchedToDifferentHandlersAreExecutedConcurrently)

The bug prevents messages to un-busy actors to be processed if a busy
handler has more than one message into the queue: that is, a busy
handler with more than one queued message will block all messages to
other handlers.

Akka wont build...

Hey Jonas,

Akka wont build out of the box, it fails with the following error:

src/main/scala/collection/Vector.scala:300: warning: non variable type-argument T in type pattern is unchecked since it is eliminated by erasure
case vec: Vector[T] => {

/EventBasedThreadPoolDispatcher.scala:300: error: type mismatch;
found : java.util.Collection[$1] where type $1 <: java.util.concurrent.Callable[T]
required: java.util.Collection[java.util.concurrent.Callable[?]]
def invokeAll[T](callables: Collection[
<: Callable[T]]) = executor.invokeAll(callables)
^
/Users/timperrett/repositories/scala/akka/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala:301: error: type mismatch;
found : java.util.Collection[
$2] where type $2 <: java.util.concurrent.Callable[T]
required: java.util.Collection[java.util.concurrent.Callable[?]]
def invokeAll[T](callables: Collection[
<: Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAll(callables, l, timeUnit)
^
/Users/timperrett/repositories/scala/akka/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala:302: error: type mismatch;
found : java.util.Collection[$3] where type $3 <: java.util.concurrent.Callable[T]
required: java.util.Collection[java.util.concurrent.Callable[?]]
def invokeAny[T](callables: Collection[
<: Callable[T]]) = executor.invokeAny(callables)
^
/Users/timperrett/repositories/scala/akka/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala:303: error: type mismatch;
found : java.util.Collection[
$4] where type $4 <: java.util.concurrent.Callable[T]
required: java.util.Collection[java.util.concurrent.Callable[?]]
def invokeAny[T](callables: Collection[
<: Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAny(callables, l, timeUnit)
^
/Users/timperrett/repositories/scala/akka/kernel/src/main/scala/state/DataFlowVariable.scala:96: warning: abstract type T in type pattern is unchecked since it is eliminated by erasure
val future: Future[T] = out !! (Get, {case t: T => t})

Document Use-cases: When, How, What (in terms of modules) for which use-case

Fault tolerance Concurrency Throughput Scalability

Draw pictures

Library mode

  1. As service layer. Use actors as services. Local or distributed.
  2. As 1 plus: Add tx storage as a cache alongside rdbms
  3. As 1 plus: Use tx storage as db
  4. Deploy in Jetty using akkaservlet to expose REST services
  5. Use tx storage only using (upcoming):
  • Java: annotations
  • Scala: for comp

Stand alone kernel mode

  1. Use as REST kernel to expose services
  2. Use JAX-RS web framework features to build full stack web app.

Fix Cassandra call to get_columns_since

Cassandra get_columns_since gotcha
This makes sense once you think about it, but it doesn’t appear to show up anywhere in the doc. If you call get_columns_since on a column family that is not ordered by Time, the call succeeds but always returns zero rows. To get this working you’ll need a column defined like this

Spring integration

Create a Spring interceptor (AOP alliance interceptor) for active objects.
Support @Autowired through guiceyfruit-spring.
Support Spring XML config?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.