SlideShare a Scribd company logo
1 of 22
High Throughput Transactional Stream Processing 
Terence Yim (@chtyim)
PROPRIETARY & CONFIDENTIAL 
Who We Are 
• Create open source software than provides simple access to powerful technologies 
• Cask Data Application Platform (http://cdap.io) 
• A platform runs on top of Hadoop to provide data and application virtualization 
• Virtualization of data through logical representations of underlying data 
• Virtualization of applications through application containers 
• Services and tools that enable faster application development and better operational control in production 
• Coopr (http://coopr.io) 
• Clusters with a Click 
• Self-service, template-based cluster provisioning system
PROPRIETARY & CONFIDENTIAL 
Tigon Architecture 
• Basic unit of execution is called Flow 
• A Directed Acyclic Graph (DAG) of Flowlets 
•Multiple modes of execution 
• Standalone 
• Useful for testing 
• Distributed 
• Fault tolerant, scalable
PROPRIETARY & CONFIDENTIAL 
Execution Model 
• Distributed mode 
• Runs on YARN through Apache Twill 
• One YARN container per one flowlet instance 
• One active thread per flowlet instance 
• Flowlet instances can scale dynamically and independently 
• No need to stop Flow 
• Standalone mode 
• Single JVM 
• One thread per flowlet instance 
• Queues are in-memory, not really persisted
PROPRIETARY & CONFIDENTIAL 
Flowlet 
• Processing unit of a Flow 
• Flowlets within a Flow are connected through Distributed Queue 
• Consists of one or more Process Method(s) 
• User defined Java method 
• No restriction on what can be done in the method 
• A Process Method in a Flowlet can be triggered by 
• Dequeue objects emitted by upstream flowlet(s) 
• Repeatedly triggered by time delay 
• Useful for polling external data (Twitter Firehose, Kafka, …) 
• Inside Process Method, you can emit objects for downstream Flowlet(s)
PROPRIETARY & CONFIDENTIAL 
Word Count 
public class WordSplitter extends AbstractFlowlet { 
private OutputEmitter<String> output; 
@Tick(delay=100, unit=TimeUnit.MILLISECONDS) 
public void poll() { 
// Poll tweets from Twitter Firehose 
// ... 
for (String word : tweet.split("s+")) { 
output.emit(word); 
} 
} 
}
PROPRIETARY & CONFIDENTIAL 
Word Count 
public class WordCounter extends AbstractFlowlet { 
@ProcessInput 
public void process(String word) { 
// Increments count for the word in HBase 
} 
}
PROPRIETARY & CONFIDENTIAL 
Word Count 
public class WordCountFlow implements Flow { 
@Override 
public FlowSpecification configure() { 
return FlowSpecification.Builder.with() 
.setName("WordCountFlow") 
.setDescription("Flow for counting words) 
.withFlowlets() 
.add("splitter", new WordSplitter()) 
.add("counter", new WordCounter()) 
.connect() 
.from("splitter").to("counter") 
.build(); 
} 
}
PROPRIETARY & CONFIDENTIAL 
Data Consistency 
• Node dies 
• Process method throws Exception 
• Transient IO issues (e.g. connection timeout) 
• Conflicting updates 
• Writes to the same cell from two instances
PROPRIETARY & CONFIDENTIAL 
Data Consistency 
• Resume from failure by replaying queue 
• At least once 
• Data logic be idempotent 
• Program handles rollback / skipping 
• At most once 
• Lossy computation 
• Exactly once 
• Ideal model for data consistency as if failure doesn’t occurred 
• How about data already been written to backing store?
PROPRIETARY & CONFIDENTIAL 
Flowlet Transaction 
Queue … 
Transaction to the rescue 
Flowlet 
… 
Flowlet 
HBase Table 
Isolated Read 
Write conflicts 
Queue … Flowlet
PROPRIETARY & CONFIDENTIAL 
Tigon and HBase 
• Tigon uses HBase heavily 
• Queues are implemented on HBase Tables 
• Optionally integrated with HBase as user data stores 
• HBase has limited support on transaction 
• Has atomic cell operations 
• Has atomic batch operations on rows within the same region 
• NO cross region atomic operations 
• NO cross table atomic operations 
• NO multi-RPC atomic operations
PROPRIETARY & CONFIDENTIAL 
Tephra on HBase 
• Tephra (http://tephra.io) 
• Brings ACID to HBase 
• Extends to multi-rows, multi-regions, multi-tables 
• Multi-Version Concurrency Control 
• Cell version = Transaction ID 
• All writes in the same transaction use the same transaction ID as version 
• Reads isolation by excluding uncommitted transactions 
• Optimistic Concurrency Control 
• Conflict detection at commit time 
• No locking, hence no deadlock 
• Performs good if conflicts happens rarely
PROPRIETARY & CONFIDENTIAL 
Flowlet Transaction 
• Transaction starts before dequeue 
• Following actions happen in the same transaction 
• Dequeue 
• Invoke Process Method 
• States updates 
• Only if updates are integrated with Tephra (e.g. Queue and TransactionAwareHTable in Tephra) 
• Enqueue 
• Transaction failure will trigger rollback 
• Exception thrown from Process Method 
• Write conflicts
PROPRIETARY & CONFIDENTIAL 
Distributed Transactional Queue 
• Persisted transactionally on HBase 
• One row per queue entry 
• Enqueue 
• Batch updates at commit time 
• Commits together with user updates 
• Dequeue 
• Scans for uncommitted entries 
• Marks entries as processed on commit 
• Coprocessor 
• Skipping committed entries on dequeue scan 
• Cleanup consumed entries on flush/compact
PROPRIETARY & CONFIDENTIAL 
Transaction Failure 
• Rollback cost may be high, depends on what triggers the failure 
• User exception 
• Most likely low as most changes are still in local buffer 
• Write conflicts 
• Relatively low if conflicts are detected before persisting 
• High if changes are persisted and conflicts found during the commit phase 
• Flowlet optionally implements the Callback interface to intercept transaction failure 
• Decide either retry or abort the failed transaction 
• Default is to retry with limited number of times (Optimistic Concurrency Control) 
• Max retries is setting through the @ProcessInput annotation.
PROPRIETARY & CONFIDENTIAL 
Performance Tips 
• Runs more Flowlet instances 
• Dequeue Strategy 
• @HashPartition 
• Hash on the write key to avoid write conflicts 
• Batch dequeue 
• Use @Batch annotation on Process Method 
• More entries will be processed in one transaction 
• Minimize IO and transaction overhead
PROPRIETARY & CONFIDENTIAL 
Word Count 
public class WordSplitter extends AbstractFlowlet { 
private OutputEmitter<String> output; 
@Tick(delay=100, unit=TimeUnit.MILLISECONDS) 
public void poll() { 
// Poll tweets from Twitter Firehose 
// ... 
for (String word : tweet.split("s+")) { 
output.emit(word, "key", word); // Hash by the word 
} 
} 
}
PROPRIETARY & CONFIDENTIAL 
Word Count 
public class WordCounter extends AbstractFlowlet { 
@ProcessInput 
@Batch(100) 
@HashPartition("key") 
public void process(String word) { 
// ... 
} 
}
PROPRIETARY & CONFIDENTIAL 
Summary 
• Real-time stream processing framework 
• Exactly once processing guarantees 
• Transaction message queue on Apache HBase 
• Transactional storage integration 
• Through Tephra transaction engine 
• Executes on Hadoop YARN 
• Through Apache Twill 
• Simple Java Programmatic API 
• Imperative programming 
• Data model through Java Object
PROPRIETARY & CONFIDENTIAL 
Road map 
• Partitioned queue 
• Better scalability, better performance 
• Preliminary tests shows 100K events/sec on 8 nodes cluster with 10 flowlet instances 
• Linearly scalable 
• Drain / cleanup queue 
• Better controls for upgrade 
• Supports more programming languages 
• External logging and metrics system integration 
•More source Flowlet types 
• Kafka, Twitter, Flume…
PROPRIETARY & CONFIDENTIAL 
Contributions 
•Web-site: http://tigon.io 
• Tigon in CDAP: http://cdap.io 
• Source: https://www.github.com/caskdata/tigon 
•Mailing lists 
• tigon-dev@googlegroups.com 
• tigon-user@googlegroups.com 
• JIRA 
• http://issues.cask.co/browse/TIGON

More Related Content

Recently uploaded

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Tigon talk in QConSF 2014

  • 1. High Throughput Transactional Stream Processing Terence Yim (@chtyim)
  • 2. PROPRIETARY & CONFIDENTIAL Who We Are • Create open source software than provides simple access to powerful technologies • Cask Data Application Platform (http://cdap.io) • A platform runs on top of Hadoop to provide data and application virtualization • Virtualization of data through logical representations of underlying data • Virtualization of applications through application containers • Services and tools that enable faster application development and better operational control in production • Coopr (http://coopr.io) • Clusters with a Click • Self-service, template-based cluster provisioning system
  • 3. PROPRIETARY & CONFIDENTIAL Tigon Architecture • Basic unit of execution is called Flow • A Directed Acyclic Graph (DAG) of Flowlets •Multiple modes of execution • Standalone • Useful for testing • Distributed • Fault tolerant, scalable
  • 4. PROPRIETARY & CONFIDENTIAL Execution Model • Distributed mode • Runs on YARN through Apache Twill • One YARN container per one flowlet instance • One active thread per flowlet instance • Flowlet instances can scale dynamically and independently • No need to stop Flow • Standalone mode • Single JVM • One thread per flowlet instance • Queues are in-memory, not really persisted
  • 5. PROPRIETARY & CONFIDENTIAL Flowlet • Processing unit of a Flow • Flowlets within a Flow are connected through Distributed Queue • Consists of one or more Process Method(s) • User defined Java method • No restriction on what can be done in the method • A Process Method in a Flowlet can be triggered by • Dequeue objects emitted by upstream flowlet(s) • Repeatedly triggered by time delay • Useful for polling external data (Twitter Firehose, Kafka, …) • Inside Process Method, you can emit objects for downstream Flowlet(s)
  • 6. PROPRIETARY & CONFIDENTIAL Word Count public class WordSplitter extends AbstractFlowlet { private OutputEmitter<String> output; @Tick(delay=100, unit=TimeUnit.MILLISECONDS) public void poll() { // Poll tweets from Twitter Firehose // ... for (String word : tweet.split("s+")) { output.emit(word); } } }
  • 7. PROPRIETARY & CONFIDENTIAL Word Count public class WordCounter extends AbstractFlowlet { @ProcessInput public void process(String word) { // Increments count for the word in HBase } }
  • 8. PROPRIETARY & CONFIDENTIAL Word Count public class WordCountFlow implements Flow { @Override public FlowSpecification configure() { return FlowSpecification.Builder.with() .setName("WordCountFlow") .setDescription("Flow for counting words) .withFlowlets() .add("splitter", new WordSplitter()) .add("counter", new WordCounter()) .connect() .from("splitter").to("counter") .build(); } }
  • 9. PROPRIETARY & CONFIDENTIAL Data Consistency • Node dies • Process method throws Exception • Transient IO issues (e.g. connection timeout) • Conflicting updates • Writes to the same cell from two instances
  • 10. PROPRIETARY & CONFIDENTIAL Data Consistency • Resume from failure by replaying queue • At least once • Data logic be idempotent • Program handles rollback / skipping • At most once • Lossy computation • Exactly once • Ideal model for data consistency as if failure doesn’t occurred • How about data already been written to backing store?
  • 11. PROPRIETARY & CONFIDENTIAL Flowlet Transaction Queue … Transaction to the rescue Flowlet … Flowlet HBase Table Isolated Read Write conflicts Queue … Flowlet
  • 12. PROPRIETARY & CONFIDENTIAL Tigon and HBase • Tigon uses HBase heavily • Queues are implemented on HBase Tables • Optionally integrated with HBase as user data stores • HBase has limited support on transaction • Has atomic cell operations • Has atomic batch operations on rows within the same region • NO cross region atomic operations • NO cross table atomic operations • NO multi-RPC atomic operations
  • 13. PROPRIETARY & CONFIDENTIAL Tephra on HBase • Tephra (http://tephra.io) • Brings ACID to HBase • Extends to multi-rows, multi-regions, multi-tables • Multi-Version Concurrency Control • Cell version = Transaction ID • All writes in the same transaction use the same transaction ID as version • Reads isolation by excluding uncommitted transactions • Optimistic Concurrency Control • Conflict detection at commit time • No locking, hence no deadlock • Performs good if conflicts happens rarely
  • 14. PROPRIETARY & CONFIDENTIAL Flowlet Transaction • Transaction starts before dequeue • Following actions happen in the same transaction • Dequeue • Invoke Process Method • States updates • Only if updates are integrated with Tephra (e.g. Queue and TransactionAwareHTable in Tephra) • Enqueue • Transaction failure will trigger rollback • Exception thrown from Process Method • Write conflicts
  • 15. PROPRIETARY & CONFIDENTIAL Distributed Transactional Queue • Persisted transactionally on HBase • One row per queue entry • Enqueue • Batch updates at commit time • Commits together with user updates • Dequeue • Scans for uncommitted entries • Marks entries as processed on commit • Coprocessor • Skipping committed entries on dequeue scan • Cleanup consumed entries on flush/compact
  • 16. PROPRIETARY & CONFIDENTIAL Transaction Failure • Rollback cost may be high, depends on what triggers the failure • User exception • Most likely low as most changes are still in local buffer • Write conflicts • Relatively low if conflicts are detected before persisting • High if changes are persisted and conflicts found during the commit phase • Flowlet optionally implements the Callback interface to intercept transaction failure • Decide either retry or abort the failed transaction • Default is to retry with limited number of times (Optimistic Concurrency Control) • Max retries is setting through the @ProcessInput annotation.
  • 17. PROPRIETARY & CONFIDENTIAL Performance Tips • Runs more Flowlet instances • Dequeue Strategy • @HashPartition • Hash on the write key to avoid write conflicts • Batch dequeue • Use @Batch annotation on Process Method • More entries will be processed in one transaction • Minimize IO and transaction overhead
  • 18. PROPRIETARY & CONFIDENTIAL Word Count public class WordSplitter extends AbstractFlowlet { private OutputEmitter<String> output; @Tick(delay=100, unit=TimeUnit.MILLISECONDS) public void poll() { // Poll tweets from Twitter Firehose // ... for (String word : tweet.split("s+")) { output.emit(word, "key", word); // Hash by the word } } }
  • 19. PROPRIETARY & CONFIDENTIAL Word Count public class WordCounter extends AbstractFlowlet { @ProcessInput @Batch(100) @HashPartition("key") public void process(String word) { // ... } }
  • 20. PROPRIETARY & CONFIDENTIAL Summary • Real-time stream processing framework • Exactly once processing guarantees • Transaction message queue on Apache HBase • Transactional storage integration • Through Tephra transaction engine • Executes on Hadoop YARN • Through Apache Twill • Simple Java Programmatic API • Imperative programming • Data model through Java Object
  • 21. PROPRIETARY & CONFIDENTIAL Road map • Partitioned queue • Better scalability, better performance • Preliminary tests shows 100K events/sec on 8 nodes cluster with 10 flowlet instances • Linearly scalable • Drain / cleanup queue • Better controls for upgrade • Supports more programming languages • External logging and metrics system integration •More source Flowlet types • Kafka, Twitter, Flume…
  • 22. PROPRIETARY & CONFIDENTIAL Contributions •Web-site: http://tigon.io • Tigon in CDAP: http://cdap.io • Source: https://www.github.com/caskdata/tigon •Mailing lists • tigon-dev@googlegroups.com • tigon-user@googlegroups.com • JIRA • http://issues.cask.co/browse/TIGON