Task project is designed to run tasks in reliable manner. It can run as a stand alone app or be embedded into another akka project both as publisher(s) and/or consumer(s).
Use cases would be queueing, live data migration, sending events to Mixpanel, download files from a server and put on S3, etc.
Overview or architecture
- Sending a message from actor A to B in a reliable way (proxy consumers)
- Segment consumer
- Push consumer (Apns, Gcm, Urban Airship)
- Currently RabbitMQ is used as queueing provider but can be swapped out in favor of kafka or something else
- Later persistent actors can be used instead of queueing
- Java (latest preferred)
- Sbt (check project/build.properties for version)
- Currently Rabbit is used, makes sure it's running on localhost:5672 and user guest/guest is enabled or modify config
- Kafka backend
- Support for json maessages to have non scala producers also
- Designated S3 consumer to put content on S3, to download files from other servers and put on S3
- Designated Mixpanel consumer