droidconIN 2016

The sixth edition of droidconIN

Persistent Queues with Tape

Submitted by Prateek Srivastava (@f2prateek) on Thursday, 16 June 2016

videocam_off

Technical level

Intermediate

Section

Full talk (40 minutes)

Status

Submitted

Vote on this proposal

Login to vote

Total votes:  +3

Abstract

Processing background tasks in Android apps can be tricky. You need to account for low memory situations, running out of battery and flaky networks.

Persisting tasks to disk helps you reliably handle such edge cases. Enter Tape, a collection of queue related classes. This talk will be primarily about it’s core component, QueueFile — a lightning fast, transactional, persistent file-based FIFO.

Veterans — we’ll take a deep dive into it’s technical implementation and see how it guarantees both reliability and efficiency.

Beginners — we’ll compare it to alternatives and dig into it’s API with real world examples.

Outline

  1. Why you need a persistent Queue.
  2. Traditional Solutions
  3. Tape
  4. QueueFile Format
  5. QueueFile Technical Implementation
  6. QueueFile API
  7. QueueFile Real World Examples
  8. Beyond Tape

Speaker bio

I work on the Platform team at Segment, mostly on our client libraries.

I enjoy working with Android and open source! I’ve worked on libraries such as rx-preferences and Dart, and contribute to others such as Tape and AssertJ-Android.

Outside of Android, I’ve been hacking tons on Go and iOS (and more reluctantly, JavaScript).

Links

Slides

https://speakerdeck.com/f2prateek/persistent-queues

Comments

  • 2
    Prateek Srivastava 2 years ago

    Yup, I mention it’s predecessor briefly https://speakerdeck.com/f2prateek/persistent-queues?slide=79 and cover it in the talk.

  • 1
    Harshit Bangar (@bangarh) 2 years ago
  • 1
    Harshit Bangar (@bangarh) 2 years ago

    Awesome. Really looking forward to this. Most of the queue libraries just does too many thing on it’s own (like idempotence). May not be related to your talk but it will be awesome if you figure out a way to listen for the status of persistent job. Something like Statusmanager.listenfor(jobId)

Login with Twitter or Google to leave a comment