Slack Edge



Professor Robin Dunbar, when studying Neolithic farming villages and primate troupes in the 90s, theorized that the maximum number of stable relationships we can keep is around 148, known popularly as Dunbar’s number. This upper bound is due to the mental dossier kept on individual’s relationships, but more importantly, the number of cross relationships between everyone else, whose number grows geometrically. Today, your Slack client is the window into your workplace, and teams have grown into the tens of thousands of people, much larger than any primitive village. Slack was architected around the goal of keeping teams of hundreds of people connected, and as teams have gotten larger, our initial techniques for loading and maintaining data have not scaled. To address that, we created a system that lazily loads data on demand and answers queries as you go.

3 Slack Brand Guidelines Deffning our brand Table of contents Section 1: Defining our brand 5 Who we are 6 How we describe the need for Slack 8 Brand values 10 Persona and personality 11 Voice and tone 13 Section 2: Design elements 17 The octothorpe 18 Our logo 19 Our logo (for small use) 20. Communication has taken a new twist, thanks to the advanced features of the instant messaging platforms. This is a communication app that puts a team together. You can not only send text messages.

Your Slack client strives to be consistent, compact, and searchable replicas of users, files, and messages that a team shares in real time. It initializes with information designed to expedite immediate use. The Slack server sends a full snapshot of a team’s data via the rtm.start API call with many things a client needs: users, channels, members in those channels, the latest messages, DMs, group DMs, etc. The client then uses this data to bootstrap itself and establishes a WebSocket to the server to get a stream of real-time events on the team. Users start typing and messages flow from your keyboard to the screens of your colleagues.

The Problem

This system, where a client loads everything on startup, is viable for small teams. When teams get especially large, however, the number of channels, users and bots become unwieldy; startup time and client overhead both suffer as a result. Teams larger than tens of thousands of users would start to notice:

  • Connection time starts to take too long: Users experience wait times on the loading screen; and when switching between channels it takes a long time to show the first handful messages.
  • Client memory footprint becomes large: Too much data is stored and processed client-side.
  • Reconnecting to Slack becomes expensive: We want you to be able to close your laptop, and immediately get back to work when you reopen it. When each restart is almost as resource-intensive as the first one, that isn’t the case.
  • Reconnection storms are resource intensive: When an entire office loses network connection or otherwise needs to connect all at once, the combined weight of those requests manifest as slower connections, more reconnects, more failures, and more retries.
Http://avatars.slack-edge.com

The Solution

How can we maintain all the features of instant access while minimizing client storage size and load on the server? The key is for the client to load minimal data upfront, and only load channel and user data as needed. As long as the experience is seamless from the user’s point of view, we are free to apply resource-saving tactics like lazy loading and just-in-time loading to the architecture of the application.

This lazy loading is the ideological birthplace of Flannel, an application-level caching service developed in-house and deployed to our edge points-of-presence. Upon client startup, Flannel caches relevant data of users, channels, bots, and more. It then provides query APIs for clients to fetch upon demand. It foresees data that will be requested next and pushes data proactively to clients. For example, let’s say you mention a colleague in a channel: While broadcasting that message to people in the channel, Flannel sees that some clients have not loaded the information about the mentioned user recently. It sends the user data to those clients just before sending the message to save them a round-trip query.

Now, when a user wants to connect to Slack, the following happens:

  1. The Slack client connects to Flannel.
  2. Behind the scenes, Flannel gathers the full client startup data. It also opens up a WebSocket connection to Slack servers in the main AWS region to stay current by consuming real-time events.
  3. Flannel returns a slimmed down version of this startup data to the client, allowing it to bootstrap itself.
  4. The Slack client is ready to use.

Immediately after connection, the client still only has bare bones data on the state of its constituent channels, so when the user takes advantage of find-as-you-type autocomplete, the client sends requests to Flannel and renders the results. You can test this out right now in your Slack window: If you open the Quick Switcher (cmd+k on Mac, ctrl+k on Windows), your client has little to no knowledge of the state or details of your team. However, as soon as you start typing, within moments, the autocomplete query will have been filled and the dropdown menu should then populate with suggestions. A similar cascade of events happen when you start typing a username in the message bar.

We use consistent hashing to choose which Flannel host a user connects to in order to maintain team affinity: Users on the same team who are from the same networking region are directed to the same Flannel instance to achieve optimal cache efficiency. When new or recently disconnected users connect, they are served directly from the Flannel cache, which reduces impact of reconnect storms to the Slack backend servers.

Status Quo and Future work

Flannel has been running in our edge locations since January. It serves 4 million simultaneous connections at peak and 600K client queries per second.

This has been an ongoing effort among the Web Client, Mobile and Backend engineering teams. We’re already using Flannel to increase scalability in Slack, but we have even bigger plans ahead:

  • Users and channel members are already lazily loaded on the client side. The payload size needed for client bootstrap has reduced tremendously: on a 1.5K user team, it reduced the data size by 7 times; on a 32K user team, it was reduced by 44 times. We are continuing this effort and will be removing channel objects in short order.
  • We are bringing the Flannel experience to Mobile users after seeing great success with the Web client.
  • We are moving event fanout into Flannel. Today, when a message is broadcast in a channel, the message server recognizes multiple recipients and forwards a copy to Flannel for each connected user. However, it’s much more efficient to send only one copy to each Flannel server and then fan out to multiple destinations. Besides messages, other event types traverse through Slack servers in the same fashion and can be thus optimized. Such a structure will largely reduce network bandwidth consumption and backend CPU overhead.
  • Finally, we are moving clients to a pub/sub model. Today, clients listen to all events happening on a team, including messages in all channels you are in, user profile updates, user presence changes, etc. This doesn’t have to be the case: clients can subscribe to the series of events that are relevant in the current view, and change subscriptions when users switch to another view. In fact, we’ve already moved user presence updates to the pub/sub model with great results: the number of presence events received by clients was reduced by a factor of 5. Moving more events to pub/sub will further improve client performance.

Hutterite settlements split up when they grew past the magical 148 number, and many Polynesian tribes sent out exploration parties when their island villages grew too large. This was because they could no longer keep track of everyone they interacted with. Their limiting factor was the amount of information each person had to keep in their mental cache. Flannel resolves similar constraints for Slack clients using central servers, providing information on demand. Features like fanout at edge points-of-presence and pub/sub further reduces the computational load on both the server and the client. With advancements like this in place, Slack evolves past its original design and is able to serve teams with hundreds of thousands of users.

We will continue to look for ways to make Slack faster and more reliable. If you’re interested in helping, get in touch.

slack
1.n слабая, плохо натянутая, провисшая часть; слабина

slack demand — слабый спрос

slack edge — провисшая сторона

2.n тех. зазор, игра, люфт

slack of paper — провисание бумаги

a sudden slack in production — неожиданное снижение производительности

5.n разг. бездействие, ничегонеделание

slack period — период затишья; период бездействия; период застоя

6.n мор. стояние прилива или отлива; время между приливом и отливом

activity slack time — резерв времени до начала работы

machine slack time — время простоя станка

activity slack — резерв времени действия

8.n неударный слог

slack time — время простоя

event slack — резерв времени события

negative slack — отрицательный резерв

slack pace — медленный шаг

slack heat — небольшой жар

12.a вялый, неактивный; неэнергичный

slack season — мёртвый сезон

Slack edge software

slack hours — время , когда на улицах нет большого движения

13.a небрежный; нерадивый, ленивый; разболтанный, расхлябанный

slack soldier — недисциплинированный солдат

14.a свободный, плохо натянутый; расслабленный
Slack Edge

slack bandage — слабая повязка

slack take up spring — натянутая пружина

slack parents — нестрогие родители

slack hand — нетвёрдая рука

slack weather — расслабляющая погода

to feel slack — чувствовать себя разбитым; испытывать слабость

slack dough — клёклое тесто

to slack a rope — ослабить верёвку

the rope slacked — верёвка ослабла

23.v ослаблять; уменьшать

I did not slack my love of life — я не стал меньше любить жизнь

to slack the knell — приглушить звон

the rain slacked — дождь стих

26.v разг. бездельничать, лодырничать; бить баклуши
28.v идти вяло
29.v редк. пренебрегать, относиться небрежно, недобросовестно

медлить, мешкать

32.n угольный шлам, мелкий уголь, угольная пыль
Синонимический ряд:
2.lazy (adj.) down; inattentive; indolent; late; lazy; lingering; off; slow; sluggish
3.negligent (adj.) behindhand; careless; delinquent; derelict; discinct; disregardful; neglectful; negligent; regardless; remiss; sloppy
4.quiet (adj.) blunted; dull; idle; inactive; quiet
6.allowance (noun) allowance; extra; give; leeway

Http://ca.slack-edge.com

7.loosening (noun) decrease; indolence; laziness; loosening; negligence; relaxation; remissness; slowing; weakness
9.slowdown (noun) slackening; slowdown; slow-up
10.abate (verb) abate; mitigate; moderate; reduce; relax; slacken
11.loose (verb) ease; ease off; lax; let up; loose; loosen; untighten
Антонимический ряд:
diligent; disciplined; drawn; dutiful; painstaking; taut; tense; tight

English-Russian base dictionary . 2014.

Смотреть что такое 'slack' в других словарях:

  • Slack — ist der Familienname folgender Personen: Andrew Slack (* 1955), australischer Rugbyspieler Charles E. Slack, US amerikanischer Basketballspieler Charles Roger Slack (* 1937), britischer Biochemiker und Pflanzenphysiologe Freddie Slack (1910–1965) … Deutsch Wikipedia

  • Slack — Slack, a. [Compar. {Slacker}; superl. {Slackest}.] [OE. slak, AS. sleac; akin to OS. slak, OHG. slah, Prov. G. schlack, Icel. slakr, Sw. slak; cf. Skr. s[.r]j to let loose, to throw. Cf. {Slake}.] Lax; not tense; not hard drawn; not firmly… … The Collaborative International Dictionary of English

  • slack — slack1 [slak] adj. [ME slakke < OE slæc, akin to Du slak < IE base * (s)lēg , loose, slack > L laxus, lax] 1. slow; idle; sluggish 2. barely moving: said of a current, as of air or water 3. characterized by little work, trade, or… … English World dictionary

  • Slack — Slack, Slacken Slack en, v. t. 1. To render slack; to make less tense or firm; as, to slack a rope; to slacken a bandage. Wycklif (Acts xxvii. 40) [1913 Webster] 2. To neglect; to be remiss in. [Obs.] Shak. [1913 Webster] Slack not the pressage.… … The Collaborative International Dictionary of English

  • Slack — may refer to: *John Bamford Slack, British politician and lay preacher *William Yarnel Slack, Confederate general killed in the American Civil War *Slack (project management), a term used in project management *Slack, West Yorkshire, a village in … Wikipedia

  • Slack — [slɛk , engl.: slæk], der; s [engl. slack = Flaute, zu: slack = locker, lose, flau] (Wirtsch.): Überschuss an [finanziellen] Mitteln eines Unternehmens, der sich in Erfolgszeiten ansammelt u. als Reserve für Krisenzeiten dient. * * * Slack … … Universal-Lexikon

  • Slack — Slack, Slacken Slack en, v. i. [imp. & p. p. {Slacked}, {Slackened}; p. pr. & vb. n. {Slacking}, {Slackening}.] [See {Slack}, a.] 1. To become slack; to be made less tense, firm, or rigid; to decrease in tension; as, a wet cord slackens in dry… … The Collaborative International Dictionary of English

  • slack — Ⅰ. slack [1] ► ADJECTIVE 1) not taut or held tightly in position; loose. 2) (of business or trade) not busy; quiet. 3) careless, lazy, or negligent. 4) (of a tide) neither ebbing nor flowing. ► NOUN 1) … English terms dictionary

  • slack — [adj1] loose, baggy; inactive dull, easy, feeble, flabby, flaccid, flexible, flimsy, inert, infirm, laggard, lax, leisurely, limp, not taut, passive, quaggy, quiet, relaxed, sloppy, slow, slow moving, sluggish, soft, supine, unsteady, weak;… … New thesaurus

  • Slack — Slack, adv. Slackly; as, slack dried hops. [1913 Webster] … The Collaborative International Dictionary of English

  • Slack — Slack, n. The part of anything that hangs loose, having no strain upon it; as, the slack of a rope or of a sail. [1913 Webster] … The Collaborative International Dictionary of English

Slack's Edgewater Beach Resort

Книги

  • Essential Developmental Biology, Jonathan M. W. Slack. Developmental biology is at the core of biological science, integrating molecular biology, genetics and anatomy. The past 15 years has seen revolutionary advances not only in our… ПодробнееКупить за 12877.82 рубэлектронная книга
  • The Science of Stem Cells, Jonathan M. W. Slack. Introduces all of the essential cell biology and developmental biology background for the study of stem cells This book gives you all the important information you need to become a stem cell… ПодробнееКупить за 8108.47 рубэлектронная книга
  • The Handbook for Student Leadership Development, Craig Slack. Praise for the Second Edition of The Handbook for Student Leadership Development«This is a must-have book for leadership educators and all student affairs professionals who want to develop… ПодробнееКупить за 4246.91 рубэлектронная книга

Slack Edge Download

Другие книги по запросу «slack» >>

Slack Download Windows