{"__v":187,"_id":"57616bc12f88820e0086c31e","category":{"project":"54774d9af3736008009e9e0e","version":"56a0bd9e3697d80d002ac5e7","_id":"5744b1d0b56d431700d8a4fb","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-05-24T19:56:00.909Z","from_sync":false,"order":0,"slug":"what-is-syncano","title":"What Is Syncano"},"parentDoc":null,"project":"54774d9af3736008009e9e0e","user":"56703d17e10ecb0d0004eed8","version":{"__v":20,"_id":"56a0bd9e3697d80d002ac5e7","project":"54774d9af3736008009e9e0e","createdAt":"2016-01-21T11:14:38.131Z","releaseDate":"2016-01-21T11:14:38.131Z","categories":["56a0bd9f3697d80d002ac5e8","56a0bd9f3697d80d002ac5e9","56a0bd9f3697d80d002ac5ea","56a0bd9f3697d80d002ac5eb","56b098a43a5b810d00745e3f","56b098da8f7a4f0d0029dd10","56d5a8ecf612b80b00fb69cd","570989853ab43c0e0072b2d6","571006aa10300c0e007f6133","5735a52431a73b1700887ca0","5744b0529e045c0e00b7a7a2","5744b1d0b56d431700d8a4fb","5744b1fb55d65a0e00b436e1","5744b218f9c7411700ce560e","5744b220f9c7411700ce560f","5744b2259e045c0e00b7a7a7","5744b22cf8b79f0e00de6a2d","5744b23155d65a0e00b436e4","5744b242c758290e00fbc235","5744b2569e045c0e00b7a7a8","5756a3f2bb92962900dafe3d","57ee23e81e42900e0014a42f","581c822c98676e0f00d240ef"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Sockets","version_clean":"1.1.0","version":"1.1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-06-15T14:52:49.318Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"_No, they're not the things on your wall that you plug electrical devices into._ They are the things in Syncano that you plug Core functionality into! They are \"outlets\" for your creativity. Let me explain..\n\n>Sockets are outlets for your creativity\n\nThink of Syncano as the kitchen where you code and Sockets are your ingredients. You don’t have to start from scratch in this kitchen, you can simply take things off the shelf, mix them together any way you want to, and not have to wait around for the next harvest.\n\nThose ingredients are the core services that Syncano offers, such as [Data Storage](doc:data-objects-overview), [Scripts (server-side code)](doc:snippets-scripts), and [User Management](doc:user-management) to name a few. Take these, add some spices (configurations), and you've got yourself a Socket!\n\n# Sounds awesome! But I need more!\n\nOkay okay, so Sockets are the layers stacked between:\n1. Syncano’s infrastructure and core\n2. Your application\n\nYou can also think of them as building blocks between those two layers that define how your application's backend will act and interact with your app!\n\nIndividual Sockets are easily configured, combined, and created. Let's look at some of the Sockets we have available right now for you to use!\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/data-endpoint.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Data Endpoint</h3>\\n    <p style=\\\"display:block;\\\">When working with <a href=\\\"http://docs.syncano.io/v1.1/docs/classes-overview\\\">Classes</a> and <a href=\\\"http://docs.syncano.io/v1.1/docs/data-objects-overview\\\">Data Objects</a>, most of the time you'll build out sophisticated filters to return the proper data your application needs. Displaying the proper data set is the most critical part of many applications. You may also want to <a href=\\\"http://docs.syncano.io/v1.1/docs/data-objects-filtering-ordering\\\">filter</a> this information!\\n\\nAll of this is covered in Data Endpoints. You can create very specific endpoints with the filters preset, and expand referenced fields as well, so you can get details of referenced Classes in one call. This is the purpose of a Data Endpoint Socket. <a href=\\\"http://docs.syncano.io/v1.1/docs/endpoints-data\\\">Read more here!</a></p>\\n  </div>\\n</div>\"\n}\n[/block]\n\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/script-endpoint.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Script Endpoint</h3>\\n    <p style=\\\"display:block;\\\">Script Endpoints point to a specific script in your Syncano Instance, allowing you to call the endpoint as you would any other API endpoint. If you have been using Syncano prior to now, these were formerly called \\\"Webhooks\\\", but after feedback we decided to change that into \\\"Script Endpoint\\\". You can read more about how these work in the <a href=\\\"http://docs.syncano.io/v1.1/docs/endpoints-scripts\\\">Script Endpoints documentation</a>.</p>\\n  </div>\\n</div>\"\n}\n[/block]\n\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/trigger-socket.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Trigger Socket</h3>\\n    <p style=\\\"display:block;\\\">A Trigger is exactly what it sounds like - a response to some event. When you add, update, or delete data in a Class, you can trigger a Script to run, and the data is passed along. This is something that can be used for numerous purposes, like sending an email based on a request, or cleaning up other Classes when something is deleted. There are more details in our <a href=\\\"http://docs.syncano.io/v1.1/docs/triggers\\\">Trigger docs</a>, as well.</p>\\n  </div>\\n</div>\"\n}\n[/block]\n\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/schedule-socket.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Schedule Socket</h3>\\n    <p style=\\\"display:block;\\\">With a Schedule Socket, Run a nightly update, an hourly sync process, or every third Thursday at 3 p.m. - totally up to you! Speaking of 3 p.m., you have the ability to choose a time zone as well, so your 3 p.m., may be my 5 p.m. <a href=\\\"http://docs.syncano.io/v1.1/docs/schedules\\\">Learn more about Schedules here.</a></p>\\n  </div>\\n</div>\"\n}\n[/block]\n\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/channel-socket.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Real-Time Channel Socket</h3>\\n    <p style=\\\"display:block;\\\">Real-Time Channels are a way of providing real-time communication functionality in Syncano. Users can subscribe to Channels in order to get notifications about changes that happen to Data Objects connected to those Channels. They could also be used in a real-time chat application to provide a real-time experience for your users. You can <a href=\\\"http://docs.syncano.io/v1.1/docs/realtime-communication\\\">continue learning about Channels here.</a></p>\\n  </div>\\n</div>\"\n}\n[/block]\n\n[block:html]\n{\n  \"html\": \"<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-2\\\">\\n\\t\\t<img src=\\\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/push-socket.svg\\\" align=\\\"left\\\" style=\\\"padding-right:1em;\\\">\\n</div>\\n\\n  <div class=\\\"col-sm-10\\\">\\n    <h3 style=\\\"margin-top:0;\\\">Push Socket</h3>\\n    <p style=\\\"display:block;\\\">The Push Notification Socket allows you to send your users Push Notifications. It's basically an event initiated by someone else, which notifies a specified user. For example, in a chat app a user can send another user a message, which would trigger this Push Socket to notify that end user! <a href=\\\"http://docs.syncano.io/v1.1/docs/sending-push-notifications\\\">Read more about Push Notifications here.</a></p>\\n  </div>\\n</div>\"\n}\n[/block]\n# Simplicity with Flexibility\n\nTo go back to the original metaphor, the best way to cook is to do so with ingredients that are less processed. You want to know exactly what you're putting into your food, as much as possible. Sockets do exactly this. We don't force you into one specific set of functionality, but instead give you the tools to build what you need. If you want to send a text message, you should be able to choose when and why that happens, and not be restricted!\n\n# What's Next for Sockets?\n\nSockets will soon be completely customizable. Right now we have built so pre-defined sockets, which allow you to access all the pieces of our core. But soon you will be able to combine pieces, establish configurations for those Sockets, and even trigger one Socket from another one! It's like having a complex but simple to build IFTTT for your backend!\n\n**You can start creating Sockets by opening [the dashboard](https://dashboard.syncano.io) and clicking add on the main Sockets screen!**\n[block:html]\n{\n  \"html\": \"<h1 style=\\\"text-align:center;margin-bottom:2em;\\\"><a href=\\\"https://dashboard.syncano.io\\\" target=\\\"_blank\\\">Get Started!</a></h1>\"\n}\n[/block]","excerpt":"Sockets are configurations for the core services offered by Syncano. They are easily configured, combined, and created using the Dashboard or our API.","slug":"syncano-what-are-sockets","type":"basic","title":"What are Sockets?"}

What are Sockets?

Sockets are configurations for the core services offered by Syncano. They are easily configured, combined, and created using the Dashboard or our API.

_No, they're not the things on your wall that you plug electrical devices into._ They are the things in Syncano that you plug Core functionality into! They are "outlets" for your creativity. Let me explain.. >Sockets are outlets for your creativity Think of Syncano as the kitchen where you code and Sockets are your ingredients. You don’t have to start from scratch in this kitchen, you can simply take things off the shelf, mix them together any way you want to, and not have to wait around for the next harvest. Those ingredients are the core services that Syncano offers, such as [Data Storage](doc:data-objects-overview), [Scripts (server-side code)](doc:snippets-scripts), and [User Management](doc:user-management) to name a few. Take these, add some spices (configurations), and you've got yourself a Socket! # Sounds awesome! But I need more! Okay okay, so Sockets are the layers stacked between: 1. Syncano’s infrastructure and core 2. Your application You can also think of them as building blocks between those two layers that define how your application's backend will act and interact with your app! Individual Sockets are easily configured, combined, and created. Let's look at some of the Sockets we have available right now for you to use! [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/data-endpoint.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Data Endpoint</h3>\n <p style=\"display:block;\">When working with <a href=\"http://docs.syncano.io/v1.1/docs/classes-overview\">Classes</a> and <a href=\"http://docs.syncano.io/v1.1/docs/data-objects-overview\">Data Objects</a>, most of the time you'll build out sophisticated filters to return the proper data your application needs. Displaying the proper data set is the most critical part of many applications. You may also want to <a href=\"http://docs.syncano.io/v1.1/docs/data-objects-filtering-ordering\">filter</a> this information!\n\nAll of this is covered in Data Endpoints. You can create very specific endpoints with the filters preset, and expand referenced fields as well, so you can get details of referenced Classes in one call. This is the purpose of a Data Endpoint Socket. <a href=\"http://docs.syncano.io/v1.1/docs/endpoints-data\">Read more here!</a></p>\n </div>\n</div>" } [/block] [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/script-endpoint.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Script Endpoint</h3>\n <p style=\"display:block;\">Script Endpoints point to a specific script in your Syncano Instance, allowing you to call the endpoint as you would any other API endpoint. If you have been using Syncano prior to now, these were formerly called \"Webhooks\", but after feedback we decided to change that into \"Script Endpoint\". You can read more about how these work in the <a href=\"http://docs.syncano.io/v1.1/docs/endpoints-scripts\">Script Endpoints documentation</a>.</p>\n </div>\n</div>" } [/block] [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/trigger-socket.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Trigger Socket</h3>\n <p style=\"display:block;\">A Trigger is exactly what it sounds like - a response to some event. When you add, update, or delete data in a Class, you can trigger a Script to run, and the data is passed along. This is something that can be used for numerous purposes, like sending an email based on a request, or cleaning up other Classes when something is deleted. There are more details in our <a href=\"http://docs.syncano.io/v1.1/docs/triggers\">Trigger docs</a>, as well.</p>\n </div>\n</div>" } [/block] [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/schedule-socket.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Schedule Socket</h3>\n <p style=\"display:block;\">With a Schedule Socket, Run a nightly update, an hourly sync process, or every third Thursday at 3 p.m. - totally up to you! Speaking of 3 p.m., you have the ability to choose a time zone as well, so your 3 p.m., may be my 5 p.m. <a href=\"http://docs.syncano.io/v1.1/docs/schedules\">Learn more about Schedules here.</a></p>\n </div>\n</div>" } [/block] [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/channel-socket.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Real-Time Channel Socket</h3>\n <p style=\"display:block;\">Real-Time Channels are a way of providing real-time communication functionality in Syncano. Users can subscribe to Channels in order to get notifications about changes that happen to Data Objects connected to those Channels. They could also be used in a real-time chat application to provide a real-time experience for your users. You can <a href=\"http://docs.syncano.io/v1.1/docs/realtime-communication\">continue learning about Channels here.</a></p>\n </div>\n</div>" } [/block] [block:html] { "html": "<div class=\"row\">\n <div class=\"col-sm-2\">\n\t\t<img src=\"https://www.syncano.io/docs-assets/syncano-what-are-sockets/push-socket.svg\" align=\"left\" style=\"padding-right:1em;\">\n</div>\n\n <div class=\"col-sm-10\">\n <h3 style=\"margin-top:0;\">Push Socket</h3>\n <p style=\"display:block;\">The Push Notification Socket allows you to send your users Push Notifications. It's basically an event initiated by someone else, which notifies a specified user. For example, in a chat app a user can send another user a message, which would trigger this Push Socket to notify that end user! <a href=\"http://docs.syncano.io/v1.1/docs/sending-push-notifications\">Read more about Push Notifications here.</a></p>\n </div>\n</div>" } [/block] # Simplicity with Flexibility To go back to the original metaphor, the best way to cook is to do so with ingredients that are less processed. You want to know exactly what you're putting into your food, as much as possible. Sockets do exactly this. We don't force you into one specific set of functionality, but instead give you the tools to build what you need. If you want to send a text message, you should be able to choose when and why that happens, and not be restricted! # What's Next for Sockets? Sockets will soon be completely customizable. Right now we have built so pre-defined sockets, which allow you to access all the pieces of our core. But soon you will be able to combine pieces, establish configurations for those Sockets, and even trigger one Socket from another one! It's like having a complex but simple to build IFTTT for your backend! **You can start creating Sockets by opening [the dashboard](https://dashboard.syncano.io) and clicking add on the main Sockets screen!** [block:html] { "html": "<h1 style=\"text-align:center;margin-bottom:2em;\"><a href=\"https://dashboard.syncano.io\" target=\"_blank\">Get Started!</a></h1>" } [/block]