<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta name="docsearch:language" content="ja"/><meta property="og:title" content="Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.apache.org/"/><meta property="og:description" content=""/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.apache.org/blog/atom.xml" title="Apache Pulsar Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://pulsar.apache.org/blog/feed.xml" title="Apache Pulsar Blog RSS Feed"/><link rel="stylesheet" href="/css/code-blocks-buttons.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script><script type="text/javascript" src="/js/custom.js"></script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/ja"><img class="logo" src="/img/pulsar.svg" alt="Apache Pulsar"/></a><a href="/ja/versions"><h3>2.10.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/docs/ja/getting-started-standalone" target="_self">Docs</a></li><li class=""><a href="/ja/download" target="_self">Download</a></li><li class=""><a href="/docs/ja/client-libraries" target="_self">Clients</a></li><li class=""><a href="#restapis" target="_self">REST APIs</a></li><li class=""><a href="#cli" target="_self">Cli</a></li><li class=""><a href="/blog/" target="_self">Blog</a></li><li class=""><a href="#community" target="_self">Community</a></li><li class=""><a href="#apache" target="_self">Apache</a></li><li class=""><a href="https://pulsar-next.staged.apache.org/" target="_self">New Website (Beta)</a></li><span><li><a id="languages-menu" href="#"><img class="languages-icon" src="/img/language.svg" alt="Languages icon"/>日本語</a><div id="languages-dropdown" class="hide"><ul id="languages-dropdown-items"><li><a href="/en/events">English</a></li><li><a href="/fr/events">Français</a></li><li><a href="/ko/events">한국어</a></li><li><a href="/zh-CN/events">中文</a></li><li><a href="/zh-TW/events">繁體中文</a></li><li><a href="https://crowdin.com/project/apache-pulsar" target="_blank" rel="noreferrer noopener">Help Translate</a></li></ul></div></li><script>
        const languagesMenuItem = document.getElementById("languages-menu");
        const languagesDropDown = document.getElementById("languages-dropdown");
        languagesMenuItem.addEventListener("click", function(event) {
          event.preventDefault();

          if (languagesDropDown.className == "hide") {
            languagesDropDown.className = "visible";
          } else {
            languagesDropDown.className = "hide";
          }
        });
      </script></span></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Events</h1><hr/></header><h2>Calender</h2><iframe src="https://calendar.google.com/calendar/embed?src=apache.pulsar.slack%40gmail.com" style="border-width:0" height="300" width="640" frameBorder="0" scrolling="no"></iframe><h2>Events</h2><div><span><ul>
<li><a href="https://pulsar-summit.org/en/event/europe-2021">Pulsar Summit Europe 2021</a> 6 October 2021</li>
</ul>
</span></div><div><span><ul>
<li><a href="https://pulsar-summit.org/en/event/asia-2021">Pulsar Summit Asia 2021</a> 20-21 November 2021</li>
</ul>
</span></div><div><span><ul>
<li><a href="https://pulsar-summit.org/en/event/north-america-2021">Pulsar Summit North America 2021</a> 16-17 June 2021</li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.youtube.com/watch?v=iIABx20uvmw&amp;list=PLU2OcwpQkYCy_awEe5xwlxGTk5UieA37m">ApacheCon @Home</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.apachecon.com/acah2020/tracks/pulsar.html">ApacheCon @Home Pulsar/BookKeeper track</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.eventbrite.com/e/developing-pulsar-applications-online-training-tickets-122334542911">Pulsar Training: Developing Pulsar Applications with Jesse Anderson</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.youtube.com/watch?v=Owl_ncQbVwk&amp;list=PLqRma1oIkcWhfmUuJrMM5YIG8hjju62Ev">Monthly webinar</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.youtube.com/watch?v=Bss2OYq7SVk">Weekly TGIP</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://github.com/streamnative/pulsar-community-loc-cn/">Pulsar Developer Community biweekly meetup</a></li>
</ul>
</span></div><h2>Groups</h2><div><span><ul>
<li><a href="https://www.meetup.com/nor-cal-apache-pulsar-meetup-group/">NorCal Apache Pulsar Neighborhood Meetup Group</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.meetup.com/netherlands-apache-pulsar-meetup/">Netherlands Apache Pulsar Meetup Group</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.meetup.com/socal-apache-pulsar-meetup-group/">SoCal Apache Pulsar Neighborhood Meetup Group</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.meetup.com/new-york-city-apache-pulsar-meetup/">New York City Apache Pulsar Meetup</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.meetup.com/beijing-apache-pulsar-meetup-by-streamnative/">Beijing Apache Pulsar® Meetup by StreamNative</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://www.meetup.com/SF-Bay-Area-Apache-Pulsar-Meetup/">SF Bay Area Apache Pulsar Meetup</a></li>
</ul>
</span></div><div><span><ul>
<li><a href="https://japan-pulsar-user-group.connpass.com/">Japan Pulsar User Group</a></li>
</ul>
</span></div><h2>Replays</h2><div><span><ul>
<li><a href="https://www.youtube.com/playlist?list=PLqRma1oIkcWjVlPfaWlf3VO9W-XWsF_4-">Pulsar Summit Virtual Conference</a> 9 September 2020</li>
</ul>
</span></div></div></div></div></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2022 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
      const community = document.querySelector("a[href='#community']").parentNode;
      const communityMenu =
        '<li>' +
        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
        '<div id="community-dropdown" class="hide">' +
          '<ul id="community-dropdown-items">' +
            '<li><a href="/ja/contact">Contact</a></li>' +
            '<li><a href="/ja/contributing">Contributing</a></li>' +
            '<li><a href="/ja/coding-guide">Coding guide</a></li>' +
            '<li><a href="/ja/events">Events</a></li>' +
            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
            '<li><a href="https://github.com/apache/pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
            '<li><a href="https://github.com/apache/pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
            '<li><a href="https://pulsar-summit.org/" target="_blank">Pulsar Summit &#x2750</a></li>' +
            '<li>&nbsp;</li>' +
            '<li><a href="/ja/resources">Resources</a></li>' +
            '<li><a href="/ja/team">Team</a></li>' +
            '<li><a href="/ja/powered-by">Powered By</a></li>' +
          '</ul>' +
        '</div>' +
        '</li>';

      community.innerHTML = communityMenu;

      const communityMenuItem = document.getElementById("community-menu");
      const communityDropDown = document.getElementById("community-dropdown");
      communityMenuItem.addEventListener("click", function(event) {
        event.preventDefault();

        if (communityDropDown.className == 'hide') {
          communityDropDown.className = 'visible';
        } else {
          communityDropDown.className = 'hide';
        }
      });
    </script></span></footer></div><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script></body></html>