<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content=" news, blog, updates, release notes, announcements">
<title>  Blog archive • Eclipse Ditto • a digital twin framework</title>

<link rel="stylesheet" href="css/syntax.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/modern-business.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/customstyles.css">
<link rel="stylesheet" href="css/boxshadowproperties.css">
<link rel="stylesheet" href="css/theme-ditto.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700">

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js" crossorigin="anonymous"></script>
<script src="js/toc.js"></script>
<script src="js/customscripts.js"></script>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "url": "https://eclipse.org/ditto/",
  "logo": "https://eclipse.org/ditto/images/ditto.svg"
}
</script>

<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/favicon-96x96.png" sizes="96x96">

<link rel="alternate" type="application/rss+xml" title="Eclipse Ditto Blog" href="https://www.eclipse.org/ditto/feed.xml">

<!-- Eclipse Foundation cookie consent: -->
<link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
<script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>

    <script>
        $(document).ready(function() {
            $("#tg-sb-link").click(function() {
                $("#tg-sb-sidebar").toggle();
                $("#tg-sb-content").toggleClass('col-md-9');
                $("#tg-sb-content").toggleClass('col-md-12');
                $("#tg-sb-icon").toggleClass('fa-toggle-on');
                $("#tg-sb-icon").toggleClass('fa-toggle-off');
            });
        });
    </script>
</head>


<script>
    (function(w,d,s,l,i){
        w[l]=w[l]||[];
        w[l].push({'gtm.start':
            new Date().getTime(),event:'gtm.js'});
        var f=d.getElementsByTagName(s)[0],
            j=d.createElement(s),
            dl=l!='dataLayer'?'&l='+l:'';
        j.async=true;
        j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
        f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>



<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container topnavlinks">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-ditto-home" href="index.html">&nbsp;<img src="images/ditto_allwhite_symbolonly.svg" class="ditto-navbar-symbol" alt="Home"> <img src="images/ditto_allwhite_textonly.svg" class="ditto-navbar-symbol-text" alt="Ditto"></a>
        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <!-- toggle sidebar button -->
                <!--<li><a id="tg-sb-link" href="#"><i id="tg-sb-icon" class="fa fa-toggle-on"></i> Nav</a></li>-->
                <!-- entries without drop-downs appear here -->




                
                
                
                <li><a href="blog.html">Blog</a></li>
                
                
                
                <li><a href="intro-overview.html">Documentation</a></li>
                
                
                
                <li><a href="http-api-doc.html">HTTP API</a></li>
                
                
                
                <li><a href="sandbox.html">Sandbox</a></li>
                
                
                
                <li><a href="https://github.com/eclipse/ditto" target="_blank">GitHub</a></li>
                
                
                
                <li><a href="https://github.com/eclipse/ditto-examples" target="_blank">GitHub examples</a></li>
                
                
                
                <!-- entries with drop-downs appear here -->
                <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
                
                
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        
                        <li><a href="https://projects.eclipse.org/projects/iot.ditto" target="_blank">Eclipse Ditto Project</a></li>
                        
                        
                        
                        <li><a href="https://www.eclipse.org/forums/index.php/f/364/" target="_blank">Forum</a></li>
                        
                        
                        
                        <li><a href="https://ci.eclipse.org/ditto/" target="_blank">Jenkins</a></li>
                        
                        
                        
                        <li><a href="https://dev.eclipse.org/mhonarc/lists/ditto-dev/" target="_blank">Mailing list archives</a></li>
                        
                        
                        
                        <li><a href="https://gitter.im/eclipse/ditto" target="_blank">Gitter.im chat</a></li>
                        
                        
                    </ul>
                </li>
                
                
                
                <!--comment out this block if you want to hide search-->
                <li>
                    <!--start search-->
                    <div id="search-demo-container">
                        <input type="text" id="search-input" placeholder="search...">
                        <ul id="results-container"></ul>
                    </div>
                    <script src="//cdnjs.cloudflare.com/ajax/libs/simple-jekyll-search/0.0.9/jekyll-search.js" type="text/javascript"></script>
                    <script type="text/javascript">
                            SimpleJekyllSearch.init({
                                searchInput: document.getElementById('search-input'),
                                resultsContainer: document.getElementById('results-container'),
                                dataSource: 'search.json',
                                searchResultTemplate: '<li><a href="{url}" title="Blog archive">{title}</a></li>',
                                noResultsText: 'No results found.',
                                limit: 10,
                                fuzzy: true,
                    })
                    </script>
                    <!--end search-->
                </li>
            </ul>
        </div>
    </div>
    <!-- /.container -->
</nav>

<!-- Page Content -->
<div class="container">
  <div id="main">
    <!-- Content Row -->
    <div class="row">
        
        

        <!-- Content Column -->
        <div class="col-md-12" id="tg-sb-content">
            <div class="post-header">
   <h1 class="post-title-main">Blog archive</h1>
</div>



<div class="post-content">

   

    


    


    

  <div class="home">

    <div class="post-list">


    <section id="archive">
        <h3>This year's posts</h3>
        
        
        <ul class="this">
            
            <li><time>31 Aug</time><a href="2020-08-31-release-announcement-120.html">Announcing Eclipse Ditto Release 1.2.0</a></li>
            
        
            
            
            
            
            <li><time>29 Apr</time><a href="2020-04-29-release-announcement-110.html">Announcing Eclipse Ditto Release 1.1.0</a></li>
            
        
            
            
            
            
            <li><time>16 Apr</time><a href="2020-04-16-connecting-to-ttn-via-mqtt.html">Digital twins of devices connected via LoRaWAN to TTN</a></li>
            
        
            
            
            
        </ul>
        <h3>2019</h3>
        <ul class="past">
            
            
            <li><time>12 Dec</time><a href="2019-12-12-release-announcement-100.html">Announcing Eclipse Ditto Release 1.0.0</a></li>
            
        
            
            
            
            
            <li><time>04 Nov</time><a href="2019-11-04-milestone-announcement-100-M2.html">Announcing Ditto Milestone 1.0.0-M2</a></li>
            
        
            
            
            
            
            <li><time>17 Oct</time><a href="2019-10-17-http-connectivity.html">Integration of HTTP endpoints/webhooks</a></li>
            
        
            
            
            
            
            <li><time>17 Sep</time><a href="2019-09-17-milestone-announcement-100-M1a.html">Announcing Ditto Milestone 1.0.0-M1a</a></li>
            
        
            
            
            
            
            <li><time>28 Aug</time><a href="2019-08-28-openid-connect.html">Eclipse Ditto now supports OpenID Connect</a></li>
            
        
            
            
            
            
            <li><time>10 Jul</time><a href="2019-07-10-release-announcement-090.html">Announcing Eclipse Ditto Release 0.9.0</a></li>
            
        
            
            
            
            
            <li><time>29 Apr</time><a href="2019-04-29-milestone-announcement-090-M2.html">Announcing Ditto Milestone 0.9.0-M2</a></li>
            
        
            
            
            
            
            <li><time>28 Mar</time><a href="2019-03-28-milestone-announcement-090-M1.html">Announcing Ditto Milestone 0.9.0-M1</a></li>
            
        
            
            
            
            
            <li><time>13 Mar</time><a href="2019-03-13-kafka-connectivity.html">Connectivity to Apache Kafka in Eclipse Ditto</a></li>
            
        
            
            
            
        </ul>
        <h3>2018</h3>
        <ul class="past">
            
            
            <li><time>05 Dec</time><a href="2018-12-05-example-command-and-control.html">Using Eclipse Hono's Command&Control with Eclipse Ditto</a></li>
            
        
            
            
            
            
            <li><time>28 Nov</time><a href="2018-11-28-release-announcement-080.html">Announcing Eclipse Ditto Release 0.8.0</a></li>
            
        
            
            
            
            
            <li><time>14 Nov</time><a href="2018-11-14-milestone-announcement-080-M3.html">Announcing Ditto Milestone 0.8.0-M3</a></li>
            
        
            
            
            
            
            <li><time>16 Oct</time><a href="2018-10-16-example-mqtt-bidirectional.html">Example demonstrating connectivity to an MQTT broker</a></li>
            
        
            
            
            
            
            <li><time>27 Sep</time><a href="2018-09-27-milestone-announcement-080-M2.html">Announcing Ditto Milestone 0.8.0-M2</a></li>
            
        
            
            
            
            
            <li><time>21 Sep</time><a href="2018-09-21-selective-push-notifications.html">Selective push notifications available</a></li>
            
        
            
            
            
            
            <li><time>14 Aug</time><a href="2018-08-14-milestone-announcement-080-M1.html">Announcing Ditto Milestone 0.8.0-M1</a></li>
            
        
            
            
            
            
            <li><time>15 Jun</time><a href="2018-06-15-milestone-announcement-030-M2.html">Announcing Ditto Milestone 0.3.0-M2</a></li>
            
        
            
            
            
            
            <li><time>02 May</time><a href="2018-05-02-connecting-ditto-hono.html">Connecting Eclipse Ditto to Eclipse Hono</a></li>
            
        
            
            
            
            
            <li><time>26 Apr</time><a href="2018-04-26-milestone-announcement-030-M1.html">Announcing Ditto Milestone 0.3.0-M1</a></li>
            
        
            
            
            
            
            <li><time>25 Apr</time><a href="2018-04-25-connectivity-service.html">Ditto's connectivity capabilities are pimped up</a></li>
            
        
            
            
            
            
            <li><time>08 Feb</time><a href="2018-02-08-feature-definition.html">Introducing Feature Definition</a></li>
            
        
            
            
            
            
            <li><time>07 Feb</time><a href="2018-02-07-milestone-announcement-020-M1.html">Announcing Ditto Milestone 0.2.0-M1</a></li>
            
        
            
            
            
            
            <li><time>15 Jan</time><a href="2018-01-15-example-demonstrating-rest-to-websocket.html">Example demonstrating REST and WebSocket API</a></li>
            
        
            
            
            
            
            <li><time>12 Jan</time><a href="2018-01-12-milestone-announcement-010-M3.html">Announcing Ditto Milestone 0.1.0-M3</a></li>
            
        
            
            
            
        </ul>
        <h3>2017</h3>
        <ul class="past">
            
            
            <li><time>18 Dec</time><a href="2017-12-18-milestone-announcement-010-M1.html">Announcing Ditto Milestone 0.1.0-M1</a></li>
            
        
            
            
            
            
            <li><time>10 Nov</time><a href="2017-11-10-welcome-to-ditto.html">Welcome to the Eclipse Ditto project site</a></li>
            
        </ul>
    </section>
    <hr/>
    </div>
</div>


    <div class="tags">
        
    </div>

</div>

<hr class="shaded"/>

<footer>
            <div class="row">
                <div class="col-lg-12 footer">
                    <div class="logo">
                        <a href="https://eclipse.org"><img src="images/eclipse_foundation_logo.svg" alt="Eclipse logo"/></a>
                    </div>
                    <p class="notice">
                        &copy;2021 Eclipse Ditto.
                         Site last generated: May 6, 2021 <br />
                    </p>
                    <div class="quickLinks">
                        <a href="https://www.eclipse.org/legal/privacy.php" target="_blank">
                            &gt; Privacy Policy
                        </a>
                        <a href="https://www.eclipse.org/legal/termsofuse.php" target="_blank">
                            &gt; Terms of Use
                        </a>
                        <a href="https://www.eclipse.org/legal/copyright.php" target="_blank">
                            &gt; Copyright Agent
                        </a>
                        <a href="https://www.eclipse.org/legal" target="_blank">
                            &gt; Legal
                        </a>
                        <a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">
                            &gt; License
                        </a>
                        <a href="https://eclipse.org/security" target="_blank">
                            &gt; Report a Vulnerability
                        </a>
                    </div>
                </div>
            </div>
</footer>


        </div>
    <!-- /.row -->
</div>
<!-- /.container -->
</div>
<!-- /#main -->
    </div>

</body>
</html>
