{"id":3833,"date":"2019-04-04T18:03:53","date_gmt":"2019-04-04T18:03:53","guid":{"rendered":"https:\/\/voxxeddays.com\/minsk\/?p=3833"},"modified":"2019-04-04T18:04:21","modified_gmt":"2019-04-04T18:04:21","slug":"reactive-hardcore-how-to-build-a-publisher-and-beyond","status":"publish","type":"post","link":"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html","title":{"rendered":"Reactive Hardcore. How to build a Publisher and beyond"},"content":{"rendered":"<p><a><\/a>[vc_row][vc_column][vc_empty_space height=&#8221;70px&#8221;]<div class=\"speakers  \" >\n  \t\t\t<div class=\"\">\n                <div class=\"first_line \" ><\/div>\n    \t\t\t            <div class=\"first_title \" >\n                                <p>\n                                Reactive Hardcore. How to build a Publisher and beyond\n                                <\/p>\n    \t\t\t            <\/div>\n   \t\t\t\t            <div class=\"first_description\">\n                                <p>\n                                \nThe more popular Reactive Programming\/Libraries become, the more often we have to deal with those techniques and solutions. Sometimes we have to deal just with smoothies API of Reactive Extensions, sometimes we have to dive into the internals of those libraries, or sometimes we have to build our own implementation. Nevertheless, understanding of the basics patterns, behavior that is hidden inside the most of Reactive Libraries, Tool-Kits \/ Best Practice might simplify our \u2013 life with\/debugging of\/implementation of Reactive Library. Usually reading a tone of papers and blogs about the internals of Reactive Libraries, specific rules of Reactive Streams Specification or simply grasping the source code becomes hardcore. Hence, we will summarize all important by implementing own &#8220;Reactor&#8221; in Java.<\/p>\n<p>What will we do to learn? We will: * Remind the sense and importance of Reactive Streams Specification; * Naively implement essential part of the reactive library &#8211; Publisher; * Find toolkit which will help in verification of the implementation; * Iteratively follow all the rules of Reactive Streams and implement the correct solution; * Build a couple of operators like Map, PublishOn<\/p>\n<table class=\"custom-info\">\n<tr>\n<td>Main language<\/td>\n<td>English Proposal<\/td>\n<\/tr>\n<tr>\n<td>Audience level<\/td>\n<td>Intermediate<\/td>\n<\/tr>\n<tr>\n<td>Type of presentation<\/td>\n<td>Code only<\/td>\n<\/tr>\n<\/table>\n\n                                <\/p>\n                            <\/div>\n                            <div class=\"mini_gap\"><\/div>\n                <div class=\"speakers_row\">\n                    <div class=\"speakers_image\" style=\" background-image: url(https:\/\/voxxeddays.com\/minsk\/wp-content\/uploads\/sites\/42\/2019\/04\/Oleh-Dokuka.jpg)\">\n                    <\/div>\n                    <div class=\"centred\">\n                        <div class=\"speakers_description \">\n                            <h3>Oleh Dokuka<\/h3>\n                            <small><\/small>\n                            <br>\n\t\t\t\t\t        <p>\n\t\t\t\t\t        <a><\/a>Mainly Java Software Engineer \/ Consultant focused on distributed systems development adopting ReactiveManifesto and ReactiveProgramming techniques. Open Source geek, the active contributor of ProjectReactor\/RSocket\/Reactive-GRPC. Along with that, Public speaker and Author of the book \"Reactive Programming is Spring 5.0\":https:\/\/www.packtpub.com\/application-development\/reactive-programming-spring-50<br>\r\n<table class=\"custom-info\">\r\n  <tr>\r\n    <td><i class=\"fa fa-building twitter-link\"><\/i> Company<\/td>\r\n    <td>Netifix, Inc<\/td> \r\n  <\/tr>\r\n  <tr>\r\n    <td><i class=\"fa fa-twitter twitter-link\"><\/i> Twitter<\/td>\r\n    <td><a class=\"twitter-link\" href=\"https:\/\/www.twitter.com\/@OlehDokuka\" target=\"_blank\" rel=\"noopener\">@OlehDokuka<\/a><\/td> \r\n  <\/tr>\r\n<\/table>\n\t\t\t\t\t        <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\t\t\t\t\n\t\t\t    <div class=\"clear\">\n\t\t\t    <\/div>\n            <\/div>\n\t\t<\/div>[\/vc_column][\/vc_row]\n","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_empty_space height=&#8221;70px&#8221;][\/vc_column][\/vc_row]<\/p>\n","protected":false},"author":7942,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[46],"tags":[74,76,53,149],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reactive Hardcore. How to build a Publisher and beyond<\/title>\n<meta name=\"description\" content=\"Voxxed Days Minsk is a biggest Java Conference in Belarus and first Voxxed Days conference at the CIS region. Voxxed Days Minsk \u2013 is a hot combination of Java world known rock stars and jaw-dropping content for those truly inspired by the technology.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reactive Hardcore. How to build a Publisher and beyond\" \/>\n<meta property=\"og:description\" content=\"Voxxed Days Minsk is a biggest Java Conference in Belarus and first Voxxed Days conference at the CIS region. Voxxed Days Minsk \u2013 is a hot combination of Java world known rock stars and jaw-dropping content for those truly inspired by the technology.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html\" \/>\n<meta property=\"og:site_name\" content=\"Voxxed Days Minsk Developers Conference\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-04T18:03:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-04T18:04:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/voxxeddays.com\/minsk\/wp-content\/uploads\/sites\/42\/2020\/03\/Vox-oct-nov-20-cover1500x500.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\">\n\t<meta name=\"twitter:data1\" content=\"aliaksandrkazhukhouski\">\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data2\" content=\"1 minute\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/voxxeddays.com\/minsk\/#website\",\"url\":\"https:\/\/voxxeddays.com\/minsk\/\",\"name\":\"Voxxed Days Minsk Developers Conference\",\"description\":\"Welcome to Voxxed Days Minsk\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/voxxeddays.com\/minsk\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html#webpage\",\"url\":\"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html\",\"name\":\"Reactive Hardcore. How to build a Publisher and beyond\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/minsk\/#website\"},\"datePublished\":\"2019-04-04T18:03:53+00:00\",\"dateModified\":\"2019-04-04T18:04:21+00:00\",\"author\":{\"@id\":\"https:\/\/voxxeddays.com\/minsk\/#\/schema\/person\/3c270bcaedccad1522ffd757b93ad87f\"},\"description\":\"Voxxed Days Minsk is a biggest Java Conference in Belarus and first Voxxed Days conference at the CIS region. Voxxed Days Minsk \\u2013 is a hot combination of Java world known rock stars and jaw-dropping content for those truly inspired by the technology.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/voxxeddays.com\/minsk\/reactive-hardcore-how-to-build-a-publisher-and-beyond.html\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/voxxeddays.com\/minsk\/#\/schema\/person\/3c270bcaedccad1522ffd757b93ad87f\",\"name\":\"aliaksandrkazhukhouski\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/minsk\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/823e2bec3b8033f074da9766158032f1?s=96&d=mm&r=g\",\"caption\":\"aliaksandrkazhukhouski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/posts\/3833"}],"collection":[{"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/users\/7942"}],"replies":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/comments?post=3833"}],"version-history":[{"count":0,"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/posts\/3833\/revisions"}],"wp:attachment":[{"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/media?parent=3833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/categories?post=3833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/voxxeddays.com\/minsk\/wp-json\/wp\/v2\/tags?post=3833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}