{"id":1140375,"date":"2025-05-27T13:59:39","date_gmt":"2025-05-27T20:59:39","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-research-item&#038;p=1140375"},"modified":"2025-05-27T13:59:40","modified_gmt":"2025-05-27T20:59:40","slug":"netherite-efficient-execution-of-serverless-workflows-extended-journal-version","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/netherite-efficient-execution-of-serverless-workflows-extended-journal-version\/","title":{"rendered":"Netherite: Efficient Execution of Serverless Workflows (Extended Journal Version)"},"content":{"rendered":"<div class=\"t m0 x0 h7 yc ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">Serv<\/span><span class=\"current-selection\">erless<\/span> <span class=\"current-selection\">applications<\/span> <span class=\"current-selection\">are<\/span> <span class=\"current-selection\">popular<\/span> <span class=\"current-selection\">because<\/span> <span class=\"current-selection\">the<\/span><span class=\"current-selection\">y<\/span> <span class=\"current-selection\">can<\/span> <span class=\"current-selection\">provide<\/span> <span class=\"current-selection\">scalability<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">load-based<\/span> <span class=\"current-selection\">billing<\/span> <span class=\"current-selection\">with<\/span> <span class=\"current-selection\">minimal<\/span> <span class=\"current-selection\">de<\/span><span class=\"current-selection\">v<\/span><span class=\"current-selection\">eloper<\/span> <span class=\"current-selection\">ef<\/span><span class=\"current-selection\">fort.<\/span><\/div>\n<div class=\"t m0 x0 h7 yd ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">Be<\/span><span class=\"current-selection\">yond<\/span> <span class=\"current-selection\">simple<\/span> <span class=\"current-selection\">stateless<\/span> <span class=\"current-selection\">functions<\/span> <span class=\"current-selection\">(F<\/span><span class=\"current-selection\">aaS),<\/span> <span class=\"current-selection\">modern<\/span> <span class=\"current-selection\">serv<\/span><span class=\"current-selection\">erless<\/span> <span class=\"current-selection\">programming<\/span> <span class=\"current-selection\">models<\/span> <span class=\"current-selection\">such<\/span> <span class=\"current-selection\">as<\/span> <span class=\"current-selection\">Durable<\/span> <span class=\"current-selection\">Functions<\/span> <span class=\"current-selection\">(DF)<\/span> <span class=\"current-selection\">no<\/span><span class=\"current-selection\">w<\/span><\/div>\n<div class=\"t m0 x0 h7 ye ff6 fs3 fc0 sc0 ls4 ws0\"><span class=\"current-selection\">pro<\/span><span class=\"current-selection\">vide<\/span> <span class=\"current-selection\">stateful<\/span> <span class=\"current-selection\">abstractions,<\/span> <span class=\"current-selection\">such<\/span> <span class=\"current-selection\">as<\/span> <span class=\"current-selection\">workflo<\/span><span class=\"current-selection\">ws,<\/span> <span class=\"current-selection\">tasks<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">actors,<\/span> <span class=\"current-selection\">whose<\/span> <span class=\"current-selection\">state<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">progress<\/span> <span class=\"current-selection\">is<\/span> <span class=\"current-selection\">implicitly<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">continuously<\/span><\/div>\n<div class=\"t m0 x0 h7 yf ff6 fs3 fc0 sc0 ls4 ws0\"><span class=\"current-selection\">persisted.<\/span> <span class=\"current-selection\">This<\/span> <span class=\"current-selection\">automatic<\/span> <span class=\"current-selection\">resilience<\/span> <span class=\"current-selection\">greatly<\/span> <span class=\"current-selection\">simplifies<\/span> <span class=\"current-selection\">de<\/span><span class=\"current-selection\">velopment,<\/span> <span class=\"current-selection\">b<\/span><span class=\"current-selection\">ut<\/span> <span class=\"current-selection\">also<\/span> <span class=\"current-selection\">creates<\/span> <span class=\"current-selection\">performance<\/span> <span class=\"current-selection\">challenges,<\/span> <span class=\"current-selection\">such<\/span> <span class=\"current-selection\">as<\/span> <span class=\"current-selection\">a<\/span> <span class=\"current-selection\">lar<\/span><span class=\"current-selection\">ge<\/span><\/div>\n<div class=\"t m0 x0 h7 y10 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">number<\/span> <span class=\"current-selection\">of<\/span> <span class=\"current-selection\">IOps.<\/span> <span class=\"current-selection\">T<\/span><span class=\"current-selection\">o<\/span> <span class=\"current-selection\">address<\/span> <span class=\"current-selection\">these<\/span> <span class=\"current-selection\">challenges,<\/span> <span class=\"current-selection\">we<\/span> <span class=\"current-selection\">introduce<\/span> <span class=\"current-selection\">Netherite,<\/span> <span class=\"current-selection\">a<\/span> <span class=\"current-selection\">no<\/span><span class=\"current-selection\">v<\/span><span class=\"current-selection\">el<\/span> <span class=\"current-selection\">architecture<\/span> <span class=\"current-selection\">for<\/span> <span class=\"current-selection\">ex<\/span><span class=\"current-selection\">ecuting<\/span> <span class=\"current-selection\">serve<\/span><span class=\"current-selection\">rless<\/span> <span class=\"current-selection\">w<\/span><span class=\"current-selection\">orkflo<\/span><span class=\"current-selection\">ws<\/span><\/div>\n<div class=\"t m0 x0 h7 y11 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">on<\/span> <span class=\"current-selection\">an<\/span> <span class=\"current-selection\">elastic<\/span> <span class=\"current-selection\">cluster<\/span><span class=\"current-selection\">.<\/span> <span class=\"current-selection\">Netherite<\/span> <span class=\"current-selection\">groups<\/span> <span class=\"current-selection\">the<\/span> <span class=\"current-selection\">numerous<\/span> <span class=\"current-selection\">application<\/span> <span class=\"current-selection\">objects<\/span> <span class=\"current-selection\">into<\/span> <span class=\"current-selection\">a<\/span> <span class=\"current-selection\">smaller<\/span> <span class=\"current-selection\">number<\/span> <span class=\"current-selection\">of<\/span> <span class=\"current-selection\">partitions,<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">pipelines<\/span><\/div>\n<div class=\"t m0 x0 h7 y12 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">the<\/span> <span class=\"current-selection\">state<\/span> <span class=\"current-selection\">persistence<\/span> <span class=\"current-selection\">of<\/span> <span class=\"current-selection\">each<\/span> <span class=\"current-selection\">partition.<\/span> <span class=\"current-selection\">This<\/span> <span class=\"current-selection\">improv<\/span><span class=\"current-selection\">es<\/span> <span class=\"current-selection\">latenc<\/span><span class=\"current-selection\">y<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">throughput,<\/span> <span class=\"current-selection\">as<\/span> <span class=\"current-selection\">it<\/span> <span class=\"current-selection\">enables<\/span> <span class=\"current-selection\">workflo<\/span><span class=\"current-selection\">w<\/span> <span class=\"current-selection\">steps<\/span> <span class=\"current-selection\">to<\/span> <span class=\"current-selection\">group<\/span> <span class=\"current-selection\">commit,<\/span><\/div>\n<div class=\"t m0 x0 h7 y13 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">e<\/span><span class=\"current-selection\">ven<\/span> <span class=\"current-selection\">if<\/span> <span class=\"current-selection\">causally<\/span> <span class=\"current-selection\">dependent.<\/span> <span class=\"current-selection\">Moreo<\/span><span class=\"current-selection\">v<\/span><span class=\"current-selection\">er<\/span><span class=\"current-selection\">,<\/span> <span class=\"current-selection\">Netherite<\/span> <span class=\"current-selection\">le<\/span><span class=\"current-selection\">verages<\/span> <span class=\"current-selection\">F<\/span><span class=\"current-selection\">ASTER\u2019<\/span><span class=\"current-selection\">s<\/span> <span class=\"current-selection\">h<\/span><span class=\"current-selection\">ybrid<\/span> <span class=\"current-selection\">log<\/span> <span class=\"current-selection\">approach<\/span> <span class=\"current-selection\">to<\/span> <span class=\"current-selection\">support<\/span> <span class=\"current-selection\">lar<\/span><span class=\"current-selection\">ger-than-memory<\/span><\/div>\n<div class=\"t m0 x0 h7 y14 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">application<\/span> <span class=\"current-selection\">state,<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">to<\/span> <span class=\"current-selection\">enable<\/span> <span class=\"current-selection\">ef<\/span><span class=\"current-selection\">ficient<\/span> <span class=\"current-selection\">partition<\/span> <span class=\"current-selection\">mov<\/span><span class=\"current-selection\">ement<\/span> <span class=\"current-selection\">between<\/span> <span class=\"current-selection\">compute<\/span> <span class=\"current-selection\">hosts.<\/span> <span class=\"current-selection\">Our<\/span> <span class=\"current-selection\">e<\/span><span class=\"current-selection\">v<\/span><span class=\"current-selection\">aluation<\/span> <span class=\"current-selection\">sho<\/span><span class=\"current-selection\">ws<\/span> <span class=\"current-selection\">that<\/span> <span class=\"current-selection\">(a)<\/span> <span class=\"current-selection\">Netherite<\/span><\/div>\n<div class=\"t m0 x0 h7 y15 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">achie<\/span><span class=\"current-selection\">ves<\/span> <span class=\"current-selection\">lo<\/span><span class=\"current-selection\">wer<\/span> <span class=\"current-selection\">latenc<\/span><span class=\"current-selection\">y<\/span> <span class=\"current-selection\">and<\/span> <span class=\"current-selection\">higher<\/span> <span class=\"current-selection\">throughput<\/span> <span class=\"current-selection\">than<\/span> <span class=\"current-selection\">the<\/span> <span class=\"current-selection\">original<\/span> <span class=\"current-selection\">DF<\/span> <span class=\"current-selection\">engine,<\/span> <span class=\"current-selection\">by<\/span> <span class=\"current-selection\">more<\/span> <span class=\"current-selection\">than<\/span> <span class=\"current-selection\">an<\/span> <span class=\"current-selection\">order<\/span> <span class=\"current-selection\">of<\/span> <span class=\"current-selection\">magnitude<\/span> <span class=\"current-selection\">in<\/span> <span class=\"current-selection\">some<\/span> <span class=\"current-selection\">cases,<\/span><\/div>\n<div class=\"t m0 x0 h7 y16 ff6 fs3 fc0 sc0 ls5 ws0\"><span class=\"current-selection\">and<\/span> <span class=\"current-selection\">(b)<\/span> <span class=\"current-selection\">that<\/span> <span class=\"current-selection\">Netherite<\/span> <span class=\"current-selection\">has<\/span> <span class=\"current-selection\">lo<\/span><span class=\"current-selection\">wer<\/span> <span class=\"current-selection\">latency<\/span> <span class=\"current-selection\">than<\/span> <span class=\"current-selection\">some<\/span> <span class=\"current-selection\">commonly<\/span> <span class=\"current-selection\">used<\/span> <span class=\"current-selection\">alternati<\/span><span class=\"current-selection\">v<\/span><span class=\"current-selection\">es,<\/span> <span class=\"current-selection\">like<\/span> <span class=\"current-selection\">A<\/span><span class=\"current-selection\">WS<\/span> <span class=\"current-selection\">Step<\/span> <span class=\"current-selection\">Functions<\/span> <span class=\"current-selection\">or<\/span> <span class=\"current-selection\">cloud<\/span> <span class=\"current-selection\">storage<\/span><\/div>\n<div class=\"t m0 x0 h7 y17 ff6 fs3 fc0 sc0 ls6 ws0\"><span class=\"current-selection\">triggers.<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Serverless applications are popular because they can provide scalability and load-based billing with minimal developer effort. Beyond simple stateless functions (FaaS), modern serverless programming models such as Durable Functions (DF) now provide stateful abstractions, such as workflows, tasks and actors, whose state and progress is implicitly and continuously persisted. This automatic resilience greatly simplifies development, [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":null,"msr_publishername":"","msr_publisher_other":"","msr_booktitle":"","msr_chapter":"","msr_edition":"","msr_editors":"","msr_how_published":"","msr_isbn":"","msr_issue":"","msr_journal":"","msr_number":"","msr_organization":"","msr_pages_string":"","msr_page_range_start":"25","msr_page_range_end":"","msr_series":"","msr_volume":"34","msr_copyright":"","msr_conference_name":"","msr_doi":"","msr_arxiv_id":"","msr_s2_paper_id":"","msr_mag_id":"","msr_pubmed_id":"","msr_other_authors":"","msr_other_contributors":"","msr_speaker":"","msr_award":"","msr_affiliation":"","msr_institution":"","msr_host":"","msr_version":"","msr_duration":"","msr_original_fields_of_study":null,"msr_release_tracker_id":"","msr_s2_match_type":"","msr_citation_count_updated":"","msr_published_date":"2025-2-20","msr_highlight_text":"","msr_notes":"Special Issue \"Best of VLDB 2022\"","msr_longbiography":"","msr_publicationurl":"","msr_external_url":"","msr_secondary_video_url":"","msr_conference_url":"","msr_journal_url":"","msr_s2_pdf_url":"","msr_year":0,"msr_citation_count":0,"msr_influential_citations":0,"msr_reference_count":0,"msr_s2_match_confidence":0,"msr_microsoftintellectualproperty":true,"msr_s2_open_access":false,"msr_s2_author_ids":[],"msr_pub_ids":[],"msr_hide_image_in_river":null,"footnotes":""},"msr-research-highlight":[],"research-area":[13563,13547],"msr-publication-type":[193715],"msr-publisher":[],"msr-focus-area":[],"msr-locale":[268875],"msr-post-option":[269148,269142],"msr-field-of-study":[246691],"msr-conference":[],"msr-journal":[269950],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-1140375","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-data-platform-analytics","msr-research-area-systems-and-networking","msr-locale-en_us","msr-post-option-approved-for-river","msr-post-option-include-in-river","msr-field-of-study-computer-science"],"msr_publishername":"","msr_edition":"","msr_affiliation":"","msr_published_date":"2025-2-20","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"34","msr_number":"","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"","msr_how_published":"","msr_notes":"Special Issue \"Best of VLDB 2022\"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":1,"msr_main_download":"","msr_publicationurl":"","msr_doi":"","msr_publication_uploader":[{"type":"doi","viewUrl":"false","id":"false","title":"https:\/\/doi.org\/10.1007\/s00778-024-00898-1","label_id":"243106","label":0},{"type":"url","viewUrl":"false","id":"false","title":"https:\/\/rdcu.be\/eaPT6","label_id":"243109","label":0}],"msr_related_uploader":"","msr_citation_count":0,"msr_citation_count_updated":"","msr_s2_paper_id":"","msr_influential_citations":0,"msr_reference_count":0,"msr_arxiv_id":"","msr_s2_author_ids":[],"msr_s2_open_access":false,"msr_s2_pdf_url":null,"msr_attachments":[],"msr-author-ordering":[{"type":"user_nicename","value":"Sebastian Burckhardt","user_id":33544,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Sebastian Burckhardt"},{"type":"user_nicename","value":"Badrish Chandramouli","user_id":31166,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Badrish Chandramouli"},{"type":"text","value":"Chris Gillum (cgillum)","user_id":0,"rest_url":false},{"type":"text","value":"David Justo (dajusto)","user_id":0,"rest_url":false},{"type":"text","value":"Konstantinos Kallas","user_id":0,"rest_url":false},{"type":"text","value":"Connor McMahon","user_id":0,"rest_url":false},{"type":"text","value":"Christopher S. Meiklejohn","user_id":0,"rest_url":false},{"type":"text","value":"Xiangfeng Zhu","user_id":0,"rest_url":false}],"msr_impact_theme":[],"msr_research_lab":[199565],"msr_event":[],"msr_group":[144812,957177],"msr_project":[],"publication":[],"video":[],"msr-tool":[],"msr_publication_type":"article","related_content":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1140375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":1,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1140375\/revisions"}],"predecessor-version":[{"id":1140386,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1140375\/revisions\/1140386"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=1140375"}],"wp:term":[{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=1140375"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=1140375"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=1140375"},{"taxonomy":"msr-publisher","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publisher?post=1140375"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=1140375"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=1140375"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=1140375"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=1140375"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=1140375"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=1140375"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=1140375"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=1140375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}