diff --git a/src/md/docs.md b/src/md/docs.md
index c7589fa..9045de6 100644
--- a/src/md/docs.md
+++ b/src/md/docs.md
@@ -19,23 +19,26 @@
 
 ### Presentations
 
-- [Slideshare/ApacheApex](http://www.slideshare.net/ApacheApex/presentations) Presentations from past meetup events and other talks covering Apache Apex introduction, feature deep dive, integration, customer use cases and more.
-- [Next Gen Decision Making in < 2ms](https://www.youtube.com/watch?v=98EW5NGM3u0) A video discussing CapitalOne's experience with Apache Apex and evaluation of competing technologies along with the [slides](http://www.slideshare.net/ApacheApex/capital-ones-next-generation-decision-in-less-than-2-ms). 
-- [Stream Processing with Apache Apex (video)](https://www.youtube.com/watch?v=1DVMSRTNdIQ) and [(slides)](http://www.slideshare.net/ApacheApex/hadoop-summit-sj-2016-next-gen-big-data-analytics-with-apache-apex) A broad overview slide deck covering topics such as windowing, static and dynamic partitioning, unification, fault tolerance, locality, monitoring, etc.
+- [Slideshare/ApacheApex](http://www.slideshare.net/ApacheApex/presentations) Presentations from past events covering Apache Apex introduction, feature deep dive, integration, customer use cases and more.
+- [Next Gen Decision Making in < 2ms](https://www.youtube.com/watch?v=98EW5NGM3u0) A video discussing CapitalOne's experience with Apache Apex and evaluation of competing technologies along with the [slides](http://www.slideshare.net/ApacheApex/capital-ones-next-generation-decision-in-less-than-2-ms).
+- [Stream Processing with Apache Apex (video)](https://www.youtube.com/watch?v=1DVMSRTNdIQ) and [(slides)](http://www.slideshare.net/ApacheApex/hadoop-summit-sj-2016-next-gen-big-data-analytics-with-apache-apex) A broad overview slide deck covering topics such as windowing, static and dynamic partitioning, fault tolerance, locality, monitoring, etc.
+- [Stateful Streaming Data Pipelines with Apache Apex (slides)](https://schd.ws/hosted_files/apachebigdata2017/5c/Stateful%20streaming%20data%20pipelines.pdf) An overview of state management data structures and storage mechanism in Apache Apex.
 - [Fault Tolerance and Processing Semantics (video)](https://www.youtube.com/watch?v=FCMY6Ii89Nw) and [(slides)](http://www.slideshare.net/ApacheApexOrganizer/webinar-fault-toleranceandprocessingsemantics) A webinar covering core Apache Apex features including checkpointing and fault tolerance with fast, incremental recovery via a buffer server which uses a publish-subscribe model for inter-operator data transport. A variety of failure scenarios and processing guarantees are discussed.
 - [Smart Partitioning with Apache Apex (video)](https://www.youtube.com/watch?v=kJWMajIjGG0) and [(slides)](http://www.slideshare.net/ApacheApex/smart-partitioning-with-apache-apex-webinar) Webinar covering partitioning, including unique Apex features such as elasticity with dynamic resource allocation, parallel partitions for speculative execution and processing SLA etc.
 - [Real Time Stream Processing Versus Batch](http://www.slideshare.net/DevendraVyavahare/batch-processing-vs-real-time-data-processing-streaming) Slide deck compares and contrasts the needs, use cases and challenges of stream processing with those of batch processing.
 
 ### Blogs
 
-- <a href="https://www.datatorrent.com/blog/introducing-apache-apex-incubating/" rel="nofollow">Introducing Apache Apex</a> Introduces Apache Apex and discusses how it addresses the current challenges of Big Data in the areas of code reuse, operability, ease of use and the benefits of a YARN-native solution.
-- <a href="https://www.datatorrent.com/blog/tracing-dags-from-specification-to-execution/" rel="nofollow">Tracing DAGs from Specification to Execution</a> Discusses DAGs (Directed Acyclic Graphs) as an application model, how they can be specified in Java or via JSON, how the platform transforms them to physical plans for scaling and how they can be monitored via the REST API.
-- <a href="https://www.datatorrent.com/blog/blog-introduction-to-checkpoint/" rel="nofollow">An Introduction to Checkpointing in Apache Apex</a> Discusses checkpointing by saving serializing operator state to HDFS and how to configure the frequency of checkpointing (or skip it altogether) via attributes or annotations.
-- <a href="https://www.datatorrent.com/blog/blog-operability-the-graveyard-of-big-data-projects" rel="nofollow">Operability — The Graveyard of Big Data Projects</a> Argues that operability is a critical aspect of Big Data projects which implementors ignore at their peril. Features of Apache Apex that solve operability issues are discussed broadly.
-- <a href="https://www.datatorrent.com/blog/end-to-end-exactly-once-with-apache-apex" rel="nofollow"> End-to-end _Exactly-Once_ with Apache Apex</a> Details how Apache Apex can work in conjunction with transactional systems to provide _exactly-once_ semantics. A simple example of reading data from a Kafka topic and writing processed results to a SQL database is discussed along with the relevant operators (already provided in the Apex Malhar library) and the importance of idempotency.
-- <a href="https://www.datatorrent.com/blog/blog-dimensions-computation-aggregate-navigator-part-1-intro/" rel="nofollow">Dimensions Computation - Part 1: Introduction</a> A two-part blog that discusses dimensions computation in Apache Apex in considerable detail. The first part introduces the domain, shows an *AdEvent* object to model tuples in the data stream and analyzes the various dimensions of interest.
-- <a href="https://www.datatorrent.com/blog/dimensions-computation-aggregate-navigator-part-2-implementation/" rel="nofollow">Dimensions Computation - Part 2: Implementation</a> The second part continues with discussion of the three phases involved (_pre-aggregation_, _unification_ and _storage_) the JSON schema to encapsulate the various keys and aggregates, code fragments and, finally, concludes with visualization of the results.
-- <a href="https://www.datatorrent.com/blog/blog-apex-performance-benchmark" rel="nofollow">Apache Apex Performance Benchmarks</a> Discusses the performance suite used to certify releases.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Apache%20Apex%20(Incubating)%20Introduction%20'%20DataTorrent%20Blog.htm" rel="nofollow">Introducing Apache Apex</a> Introduces Apache Apex and discusses how it addresses the current challenges of Big Data in the areas of code reuse, operability, ease of use and the benefits of a YARN-native solution.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Tracing%20DAGs%20from%20Specification%20to%20Execution%20-%20DataTorrent.htm" rel="nofollow">Tracing DAGs from Specification to Execution</a> Discusses DAGs (Directed Acyclic Graphs) as an application model, how they can be specified in Java or via JSON, how the platform transforms them to physical plans for scaling and how they can be monitored via the REST API.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/An%20introduction%20to%20checkpointing%20in%20Apache%20Apex%20-%20DataTorrent.htm" rel="nofollow">An Introduction to Checkpointing in Apache Apex</a> Discusses checkpointing by saving serializing operator state to HDFS and how to configure the frequency of checkpointing (or skip it altogether) via attributes or annotations.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/End-to-end%20_Exactly-Once_%20_with%20Apache%20Apex%20-%20DataTorrent.htm" rel="nofollow"> End-to-end _Exactly-Once_ with Apache Apex</a> Details how Apache Apex can work in conjunction with transactional systems to provide _exactly-once_ semantics. A simple example of reading data from a Kafka topic and writing processed results to a SQL database is discussed along with the relevant operators (already provided in the Apex Malhar library) and the importance of idempotency.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Dimensions%20Computation.htm" rel="nofollow">Dimensions Computation - Part 1: Introduction</a> A two-part blog that discusses dimensions computation in Apache Apex in considerable detail. The first part introduces the domain, shows an *AdEvent* object to model tuples in the data stream and analyzes the various dimensions of interest.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Dimensions%20Computation%20(Aggregate%20Navigator)%20Part%202_%20Implementation%20-%20DataTorrent.htm" rel="nofollow">Dimensions Computation - Part 2: Implementation</a> The second part continues with discussion of the three phases involved (_pre-aggregation_, _unification_ and _storage_) the JSON schema to encapsulate the various keys and aggregates, code fragments and, finally, concludes with visualization of the results.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Apache%20Apex%20Performance%20Benchmarks%20-%20DataTorrent.htm" rel="nofollow">Apache Apex Performance Benchmarks</a> Discusses the performance suite used to certify releases.
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Throughput%2C%20Latency%2C%20and%20Yahoo!%20Performance%20Benchmarks.%20Is%20there%20a%20winner_%20-%20DataTorrent.htm" rel="nofollow">Throughput, Latency, And Yahoo! Performance Benchmarks. Is There A Winner?</a>
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/Fault-Tolerant%20File%20Processing%20-%20DataTorrent.htm" rel="nofollow">Fault-Tolerant File Processing with Apache Apex</a>
+- <a href="https://cdn.rawgit.com/dtpublic/website/b0c73294/blogs/SQL%20on%20Apache%20Apex%20-%20DataTorrent.htm" rel="nofollow">SQL On Apache Apex</a>
 - <a href="https://blogs.apache.org/foundation/entry/celebrating_17_years_of_the">Apache Software Foundation</a> Discusses the history of the foundation, guiding principles, current statistics and provides numerous additional links for details of how the foundation operates and is managed.
 - <a href="https://techblog.xavient.com/real-time-data-ingestion-dip-apache-apex-co-dev-opportunity">Data Ingestion Platform  - Xavient Information Systems</a> Discusses usage of Apache Apex in their data ingestion platform.
 
