FM Starting Point in the Enterprise

FMTraining.TV

(805) 946-6552

Contact us at: support@rcconsulting.com

https://fmtraining.tv/



FM Starting Point in the Enterprise

5 Days of Live Training with Jesse Barnum

Topic: FileMaker Sync - Worldwide Replication & OffLine Sync -

FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum - Day 1

FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum - Day 2

FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum - Day 3

FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum - Day 4

FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum - Day 5

FileMaker one-on-one

Coaching

Transcript

FileMaker Starting Point in the Enterprise

In this video, I wanna talk about taking the FileMaker platform and deploying it into enterprise. For long time people have been using FileMaker in enterprise within work groups, departments, within giant organizations. However, in order to choose truly support enterprise, you need to have a custom application that can replicated amongst servers that running worldwide and supporting thousands of users simultaneously.

Well, I can definitely be done with FileMaker platform, but it takes specific knowledge that support third party tools that make that happen. But what really cool about this FileMaker platform is that inexperienced people can come to the platform and learn to build custom application. Most developers first application with the FileMaker platform probably wont scale to the enterprise very well. To build an application that scales well that provides snappy performance to hundreds and not to thousands of users, well you have to use specific design techniques. And we address this in whole series of videos we call "Lean Design"

Now, if you are brand new FileMaker developer and you don't already have some sort of enterprise, I.T, or programming background. You're gonna think about building up your skills before you try to roll out in enterprise application. Or maybe getting some help from outside resource to make sure to build up your application correctly so it does scale well.

Now, to help you in this process we've taken FM starting point our free CRM, it is already build with Lean Design techniques and optimize it for deployment or replication in the enterprise environment. Now specifically, our enterprise version doesn't have any different features or better features than what you have in the version of FM starting point. But specifically how we interact with primary keys, with relational data base has changed.

Why do we do this? Well, by changing UUID and making a couple minor adjustments, we can directly support mirror sync which is replication in synchronization software from 360Works. Now the FM starting point in CRM was first conceive and built about 10 years ago. Since that time we've made numbers of update to it. In fact, we rewrite it for scratch at least twice to better optimize performance of this tool, and to make sure that were supporting latest FileMaker technology from Claris.

And with enterprise edition we've made tweaked to the management of primary keys so you don't have to make any modifications out of the box, so it can directly be used on FileMaker server that replicated to the other FileMaker servers supporting users worldwide. Of course the idea is that you have FileMaker servers that are in each GEO or fairly close with the region that we have data base users are experiencing fairly low latency between themselves and the servers itself.

So you have at least three different regions in the United States and several regions in the EU, at least one region in India, regions in Australia, regions in Japan. The idea is that you can park servers in each of those areas, and you can set that CRM that easily replicate the data in real time to all other servers so you have real enterprise level replication.

It also works great in case there is server failure, in a failure situation the users can access the next closest FileMaker server. Now, if you're brand new to the FileMaker platform and learning the platform, then I really recommend to stay with the standard version of FM starting point, you don't need the enterprise release because learning about the relationships and join tables, and compound keys and multi predicate relationships etc.. well all that's done much more simply with the basic version of FM starting point.

Of course, the trick is with that application, is that, that app will take little bit more work to get set up if you want to have replicate between servers across different geographic regions.

So hopefully, that gives you a good idea of what FM starting point enterprise is about. Once again, it's a little bit of niche product designed specifically for companies who really have offices and users with mission-critical data base needs in different geographical areas.

For more information about FM Starting Point Enterprise visit fmstartingpoint.com or send an email to support@rcconsulting.com

If you're interested more information about the replication and synchronization technology, you need to go to 360works.com and check out their mirror-sync product which is critical tool if you want to use a FileMaker in the enterprise.

Hello everyone! Welcome to an awesome Monday, my Name is Richard Carlton. I'm the creator of FMtraining.tv where we create great FileMaker training on demand training courses for the FileMaker platform. We also do daily livestreams Monday through Friday at this time slot happens to be one o'clock for me but for everyone else around the world, welcome! I really appreciate that you're here. Today is day one of some really exciting stuff, remember I have a rule I never want to be the smartest guy in the room because that's a real bad right? So today I have many people much smarter than I am. They are here to help us out so we're going to be talking about FileMaker in the enterprise specifically and synchronization. It's not just the enterprise but really syncing between two copies of FileMaker and it's kind of applicable in the enterprise a little bit. Claris for 30 years has really never positioned itself as an enterprise product or platform. And what's happened recently is that, we don't hear marketing talking to us so much as we don't hear that Claris saying hey we're enterprise now what ends up happening is that, uh when uh the CEO at Claris talks uh to folks especially in the media he starts using these words like enterprise software.

And so Claris is apparently attempting to reposition itself as an enterprise product. Just keep in mind that that is something that they have not historically done and of course that brings up the question what is enterprise because most of us don't really build enterprise applications. We build applications. The biggest FileMaker solutions most of the time have two or three hundred users but what if you needed thousands of users right? Well you know simultaneous users then really you have to have more than one server. You want those people to be sharing the same data and that's really what today is all about. It's about bringing FileMaker to the enterprise or the enterprise to FileMaker whichever. And so a basic FileMaker solution by itself, you know you really need to think about designing efficiently, designing what we call Lean Design in our course curriculum. I'm going to jump over here real quick to our live training schedule but what you're going to see is if I go up under here a lot of you who are familiar, we have some new people here but a lot of you are familiar with Nick Hunter, right? And Nick Hunter has a free video course uh where we talk about uh Lean Design and so this is probably 20 hours of training here. That's just I'm pretty on the high end of learning how to make your FileMaker solutions work very very well, right? And so the Lean Design is a big part of this but you also need some great third-party companies, like 360works. Basically the plan for today is to start the conversation about sync. I'm going to be playing air traffic control a little bit with this with Jesse or helping him out a little bit.

So let's talk about the little news real quick. FileMaker is coming up with their engaging conference or their Devcon conference. They call it engage but no one knows what engage is so it's still kind of Devcon. Those of you who wanted a Devcon Deal we are bringing back the two basically the double bundle that we have so you can get two copies of our complete training which includes FileMaker Pro 19. It includes all the stuff that we have you can access that at FM at https but is this bitly, it's this FM double we'll make sure we put that into discord twitch and YouTube as well. This is a really great bundle you get everything for two people pretty exciting. So today's conversation, this is Jesse Barnum, this is the awesome guy that he is. He is a pretty uh neat guy he's been doing Devcon presentations for many many years. We kind of bug him periodically and present critical technology. I frequently will spend time as you folks know this, I do live streams and we will talk about 360works. We talk about Nikkor at Goya, another mission critical company. 360works has been ultra mission critical for Claris. I don't know that Claris would ever tell you this but I mean like I said 360works saved back at the time FileMaker asked back in the day was around FileMaker 85910 time frame. Digital document management never existed in FileMaker until Jesse brought it to the platform. And so you know once again, this is another situation where Claris wants to push to the enterprise but they can't really get there unless you have a really highly efficient FileMaker solution one two and you have some replication or synchronization software to synchronize the server. So we'll get into that conversation just briefly.

I also want to point out the fact that we were trying to decide what artwork we were going to use with Jesse, since he is now in the enterprise and I told him to make sure that he has a for pips because he is a captain. So we are going to be doing live streaming once again with Jesse for the next four days. This is all on the same topic. Jesse has a propensity to just run through this at 500 miles an hour. He practices doing this presentation at speed. The problem today is more of a conversation to bring everyone up to date with everyone who's not a certified ninja FileMaker developer. If I show you our diagram right here uh we're gonna try to include everyone if you're Bunny right Bunny are you there? Maverick de goose bunny, are you there come in. I don't see bunny uh so bunny may not be here yet but we have brand new developers one of which is Bunny. He is in the Netherlands, I think. Is that where you're at? But intermediate developers have seen your ninjas Jesse. If you had to rank Jesse's skill set he's over here breaking off the side of the paper over here right so he tends to talk like we're all over here. But I have to slow him down and with this for the entire audience. So what I want to do is make sure that everyone here asks questions, questions feel free to slow us down if we're going too fast. Now I want to see if Jesse is there, he's unmuted. Are you there Jesse Barnum? Everyone, this is Jesse, he's the CEO of 360works. Really awesome guy, very talented individual. He's talented in Amazon and building products like I'm talented and putting training together in FileMaker. So, we together make a very dangerous team. In fact this is the guy, when we watch the rolling credits is hiking the fifty thousand dollars to me, right? In the football we're playing, fifty thousand dollars it's actually fifty thousand dollar football stack up.

There was a better story that happened downtown. What was that? That was, remember the guy walking around with his xylophone trying to get every clear out of the vendor area and you got him in the headlock? Yeah oh yeah! okay yeah am I, am I allowed to mention that? Uh! Well yeah! That was the year before, so they yeah, I'm kind of a marginally aggressive individual so yeah I told them so they have this poor hotel, okay so one story. So, so they're, so what they're doing is that they're at Devcon if they ever do a Devcon again which is a really interesting question if we're taking bets on whether that ever happens again. But if it does, I hope it's in Nashville. Yeah! Being really nice and so, they though they have like everyone's having lunch and then they walk through the guy with like some poor hotel employee gives us this like xylophone chimes with the ding dong thing on our cup or whatever and he's walking through going ding ding ding ding ding ding and that's your like subtle clue that you should head for a session. And quit talking to your friends about FileMaker and go watch a session on FileMaker any and I'm trying to like talk to people and sell product or talk about Jesse or I'm doing a live broadcast I remember what it was and and he's going and I told him I said you keep doing that I'm gonna you up right? And he came right by doing it again. I went over and grabbed and put him in a headlock and I guess he dropped the dinger. I don't remember what happened. I kind of fuzzed that out of my mind but everybody was smiling. You were smiling I just couldn't tell if he was like a smile of fear or a smile of like he's in on the joke I couldn't quite tell you.

Yeah! Let's get on with this thing so Chris is so Christian I keep calling you Christian because we got Christian Olsen. He's floating around here too, somewhere. Talk about the enterprise, what is the enterprise to you Jesse and what is this mirror-sync product you want to walk us through that a little bit verbally. Yeah, so you know I mean an enterprise is a company where you know typically large companies they're very risk-averse uh you get to be a certain size and your priorities change. And rather than focusing necessarily on being like a nimblest and the fastest you're focused more on being the most reliable and uh and scalability. And Richard, you brought up the points you know about enterprise and scalability I think what you were talking about uh like an introduction.

Yeah! And it made me think about something that I hadn't planned on mentioning but it really kind of draws a point of mind is that I think a lot of people in small businesses may not understand what scalability means. They hear that scalability means fast. You know if a customer says I want something that's scalable I think a lot of us are used to thinking oh well they wanted to be fast. And those two terms don't mean the same thing and we'll get into this more you know as we talk about some of the things that nursing can do. But scale so let's say that you have two systems and System A takes uh five seconds to run a particular operation. System B takes one second to run that same operation. Well you could accurately say that System B is faster than System A. A takes five seconds B takes one second. So B wins on speed. Now let's talk about scalability, let's say that you now have a thousand users accessing those same servers. And uh System A uh still takes five seconds each time a user does it when there's a thousand users doing it at the same time. System B each user who clicks it takes a thousand seconds to get that thing done. System B is faster than a but it is definitely not more scalable than A. And so uh so scalability is basically the question of how adversely affected does your speed become as you increase the number of users. And that's where you really get into the enterprise. It's not so much about, does this button take half a second or three quarters of a second it's more like if I've got 500 people all clicking this button at the same time what happens? Yeah that is a really great explanation. I mean I can't do any better so, the idea is that it's and we talk about this with FileMaker the I the idea with scalability we talk about this and I just want to frame this and then we'll go forward is that when you're brand new to the FileMaker platform you're happy to get it to work at all. That make sense? You're happy to get FileMaker to work at all. And then as you start to roll it out with a team of people on a FileMaker server the cloud five people it's great 10 people's great there's a magical number in there where the performance starts to ndrag. Because you haven't thought about performance at all.

And so it typically happens somewhere between 20 and 30 people, maybe a little higher than 30 but well the performance will go off a cliff and that is where it's not scalable so we're trying to help you kind of grow your user base to 50 or 100 or 200 people. Last year we took the FM starting point, which is this free CRM. We talk about the free CRM all the time. I'm gonna hit the button for the uh starting point right here so this is the free starting point for an updated version. This has been tested on a single pretty decently sized Amazon server at 200 to 300 people. It was 261 and then we did some things to try to break it and so one FileMaker server can do all that right. Does that make sense? But what if we have a thousand people or we have people around the world, well today's conversation we're going to kind of kick this over and get this going. So we're going to jump over to Jesse uh hang on one second I'm jumping to you Jesse there we are, okay? Uh yeah, all right so go ahead Jesse. So uh his arm slides up right now? Yeah! You're a lot you're yeah clear absolutely! All right, cool! Um okay so, I want to talk about the product that we make called mirror-sync and before I really dive into these bullet points here, I just want to give a really kind of just very broad overview.

I'm sure people on this call I know some of you by name and I know some of you are using nursing heavily, so I know you guys already know this uh but I'm not sure everybody on the call understands you know what sync is or or what mirror sync is or why you would care or why you would use it. So our most common reason that people buy mirror sync is because they want to be able to take FileMaker on either their phone or their iPad, and go places that either they have no connection or they have a slow connection or they have an inconsistent connection. And you know all three of those are kind of different. One of our biggest nursing customers is they use it for emergency medical staff, paramedics, firefighters that kind of stuff. And uh so, they might have a really good signal in the back of their ambulance as they're driving in one area but as they start to key data in about the guy that they're rushing the hospital, they drop the connection between you know cell towers. And so if it was if it was a normal situation where there were guests to FileMaker server, that would kick them out of whatever they were doing they would have to re-log back in, reload all of the schema and scripts and layouts and things like that and then try to find where they were and pick back up and hopefully not lose the connection again.

So clearly in that case you need the ability when you're riding in the back of an ambulance on the way to the hospital you need a way to enter data that is not going to get interrupted if your cell connection drops. If you are doing, you know I didn't even really realize how big this industry was until people started buying mirror sync but oil pipelines, uh there's field inspections of uh like oil rigs, pipelines, water lines, gas lines and things like that. And they're out in the middle of nowhere uh and so obviously they're not going to have any internet connection but they still want to be able to use FileMaker to take pictures to take readings enter measurements that kind of stuff ensure compliance, a really funny one is one of our customers uses uh mirror-sync and FileMaker for cellphone tower construction. And so by definition, wherever they are there is no sell signal, otherwise they wouldn't be building a cell tower there, um so they need to do land surveys uh that kind of stuff and they want to use FileMaker to do it.

So mirror sync is a really good choice for those kinds of things. Even if you are not out in the wild or in a remote place or driving at 70 miles an hour in traffic, it's often still annoying to connect to a FileMaker server as a guest. It's just slow in many cases, uh you know it's a you're often limited by the amount of bandwidth available to you on either your cell connection or your wi-fi connection so another uh case where people are using nursing first stuff is rental car check-ins. Um, some of you know some FileMaker developers that I'm friends with who built a vertical market app so that uh you know when someone returns a rental car they have a FileMaker go application that they use to scan the odometer and that kind of stuff. Now they could put in wi-fi hotspots and it would probably work but they don't want to. They don't want to worry about that potential point of failure. They don't want to worry about all of a sudden a dozen people not being able to do their jobs if the wi-fi gets disrupted for some reason. So if you're able to work on your own copy of the database that is loaded on your iPad or your phone, then you know it's going to be fast, you know that nothing is going to interrupt it and you know you can go anywhere with it. So that's the kind of core mission of mirror sync.

Joe Martin's answer to some questions, Scott asked, does my mirror-sync work between server versions say between like an 18 server and a 19 server can you sync between the two? Uh, Yeah! Mirror-sync 6 which is our newest and best version supports FileMaker server 17 and later. Okay! So you can sync between anything in that range you could sync between 17 18 17 19 18 and 19 whatever you want. It also does support FileMaker Cloud, the new FileMaker cloud too. But, uh there are some, there's a really awful terrible bug that I've reported to FileMaker that I keep following up with. The data API simply doesn't work. There's really not a really great easy way with a trusted third party where you can actually use the data API really really well at least that's like if you're going to make a page there with it. You have to use some um some questionable libraries with question questionable lineage to make that work and so uh pending the current time if you need a PHP slash gateway data API like when I when I press this button here to show you the upcoming live schedule, this is basically the FileMaker data API these are records vertical these are records in a FileMaker solution cloud cloud 2 just for the moment doesn't do this like it needs to and and so we're basically for the most part if you're doing any sort of creative syncing of any of this stuff you need to use FileMaker server. And most people do that with Amazon, with an EC2 instance on Windows right or something along those lines. And actually let me jump in for one second to point out everybody in this call can actually help with this. If you would like to try and help with this go on to the FileMaker community search in the bugs. And issues list I've reported a bug to them and it's called uh oh gosh I wish I remember the title exactly but basically if you for data API FileMaker Cloud Intermittent. You'll find the issue that I've outlined, look for you know Jesse Barnum and list of posters and vote for it um and if you know half of the people in this call voted it up. Yeah, it would probably get fixed. Well, we'll be back tomorrow. We'll bring the link so any hanging things we'll bring back tomorrow. Good alright cool!

So uh, Jesse where are we going to go from here so, so what I just really covered was this first bullet point here, okay I was wondering because I'm typing to other people so I'm not listening to everything you're saying so you haven't gotten down here yet all right. Keep moving chief. Yep, so we just covered client to server sync that is basically client to server sync basically you got iPads, you got phones, it does also work with laptops which we don't get a lot of use for but it's actually really cool to be able to work on FileMaker on your laptop and then sync it to a server when you have wi-fi. But that's bullet point number one. Let's talk about bullet point number two bullet point number two is, you've got this big system built in FileMaker server but you need it to uh you need to also have it running in some other system. Maybe it's my sequel maybe, it's dynamo, maybe it's salesforce mirror-sync that can do all those things it can do: Oracle SQL server red Amazon redshift any JDBC compatible database. It'll support all those things. So we have another very large client of ours . They do non-emergency medical transportation and they have approximately 2 000 drivers. It's kind of like Uber for medical appointments and they have 2000 drivers that go around and pick people up and take them to the doctor's appointments and it's their specialized training and equipment and oxygen tanks and stuff like that. So it's not just quite as simple as Uber, but the point is that they had a web interface that was built in FileMaker. And if you've ever tried to build a web interface in FileMaker you know it works but not when you get 2000 people accessing it. So what they did, what we helped them do was sync that FileMaker database. They've got about 200 to 300 internal people working on FileMaker using FileMaker pro connected directly to the FileMaker server. And then these 2000 external people that have a web interface to get to you know to pick the people up at their appointments. So we helped them build the synchronization that would sync the FileMaker server database to a MySQL database and then we built the web interface to talk to MySQL and that has completely solved their problems.

They would have half hour to an hour outages before, where servers needed to be restarted, backups needed to be reloaded. It was actually hanging FileMaker up from the volume it was called threads to deadlock and so that problem has been 100 percent solved by taking that load off of the poor FileMaker server which is really not designed from the ground up to support 2000 web users. And then moving that to my sequel which is designed from the ground up for that exact kind of thing. A similar kind of situation. similar situation I'll keep it short because it's not that different but we did a system for a large public school system and we had to have 60 000 people log into their database simultaneously and when I say simultaneously I mean like at five o'clock PM in zero seconds on Friday because everybody wanted to check and see which programs their kids had gotten accepted into and that is the time they posted those results.

So basically within like a 15-minute block of time, you had 30 to 60 000 people all trying to hit the website at the same time to check the site and see what programs their kids got accepted to. And we knew that was going to kill FileMaker. We actually knew that's going to kill my sequel too because another company had done it in my sequel the year before, and that had melted down actually three years running and had not been able to handle it. So we did it with dynamodb which runs Amazon.com and that's it's not even like breathing hard to handle that kind of load and we use mirror-sync to sync this FileMaker database to the Dynamo database and and they actually did a load test on it with 40 000 simultaneous people and they said going back to my point about scalability, they said that the web application ran the exact same speed with one simultaneous user and 40 000 simultaneous users. So that's just kind of it's, it's making all of this power and the scalability mirror-sync is putting that within the reach of all of us and the FileMaker community. We don't necessarily need to switch to a new tool, we just need to extend our existing tool with mirror sync to use these other capabilities. Absolutely! absolutely! Yep yep yep and that that would be a good another webinar someday we could talk about dynamodb because it's you know that's like unnatural things you do with the database it's really I'd love to dynamo is crazy.

I was reading that on prime day three years ago and I'm sure it's more now three years ago on prime day they measured dynamodb as sustained just for Amazon.com traffic they measured a sustained 13.9 million requests per second. 13. 9 million requests per second on Amazon.com from people shopping and dynamo handled that so whatever purposes we can think of dynamo is going to handle it. Right, the trick is though that when you have to when you go into that conversation everything you think you know about databases like oh it's a relationship and it's a key yeah you have to like okay just check all that at the door because we're starting from scratch. It's like reimagining it and of course it has it. FileMaker does things it won't do, right? But yeah so it's the right tool for the right job and and any more about FileMaker about integrating with the correct third-party tool. And then of course we get to kind of our last bullet point here which is the whole thing about multiple FileMaker servers which you can use them two different ways. You can put them all together so they're clustering kind of backed up ready to go or you can spread them around the world or do both, right? Yeah, yeah! And that's going to be the focus of this kind of four day thing is this third bullet point here.

We might talk about the first one, I'll leave that up to Richard if he wants to talk more or do a demo or something like that but I think the heart of this is going to be this third bullet point. So I've got a couple. I've got just a few slides here to kind of graphically show what I'm talking about. Okay, so the first one is clustering. Clustering means, so the green box in this diagram is a particular Amazon region and I'm going to talk more about everything that mirror-sync can do with or without Amazon. But I'm going to be talking about Amazon throughout this because Amazon has a lot of tools that just are out of the box to do these things. You could do this on your own server on your own data center in your own office you could do it on azure, you could do with google you could do with any service provider you want I'm most familiar with Amazon and so I'll use Amazon terminology as I'm going throughout this to talk about this.

But the green box here represents a single Amazon Region. It could be you know the Northern California Region, could be the Eastern uh the Northern Virginia Region which is close to me. You know Sweden. Let me interrupt, so let me talk about this in the last week or two but basically a region is basically like a town or a small area and what Amazon does is they set up different data centers in different buildings around that town for example, right? That make sense? Yeah, they've got 22 around the world. Yeah, they've got 20 regions around the world and within and within each region are multiple buildings with multiple data centers where that data is sinking and replicating on their own throughout that. Well yeah, so the idea is that if uh one of the buildings gets hit by an asteroid or something like that or burns to the ground really you you have that they provide their own level of redundancy, right? So yeah, they call it an availability zone so you know for instance their Ohio Region that the region is Ohio and it's kind of designed to serve the Northeast United States. And then they'll have three availability zones which are three separate data centers that are kind of like triangularly in this kind of north southwest and southeast suburbs, of uh I think it's Cleveland. I don't remember the exact city. But but yeah, they'll have an availability zones all have direct pipes to each other so they have you know under a millisecond ping times between those availability zones and it's probably a good idea so the green bar the green box I have here to be clear does not represent an availability zone it represents a region .

So this would be the Ohio Region or the northern California Region and then your servers could be in the same availability zone or better yet different availability zones so like Richard said, if a backhoe like destroys their internet connection and it actually that's not realistic because they have multiple but if something if a fire destroyed their availability zone, they would still be your other server running in the other data center on the other side of town. But so the clustering concept, the goal of clustering is to simply increase scalability and reliability. Remember, scalability is not equal speed speed is not going to be affected by clustering but scalability will be. So if you have two FileMaker servers that are syncing with each other and they're sharing data with each other, and then you have a bunch of users connecting to those servers. If you split it so that those users are now half of them are going onto one server and half of them are going on to the other server, now you've put instead of 300 users on Server A you've got 100 you've got 150 on A and 150 on B. So you're decreasing the amount of load on each server which is increasing your scalability it's also increasing your reliability because if server A goes down or server B goes down the load balancer was that orange box in the middle, will shut shuttle all the traffic over to one. The load balancer is the part that knows which of those servers are up and running.

So the users don't connect to FileMaker Server A and they don't connect the FileMaker Server B. They connect to just FileMaker server which is configured in the DNS settings to point to the load balancer. The load balancer looks feels and sounds quacks just like FileMaker server, but it's actually passing all the traffic through some of it to Server A and some of it to Server B and it makes sure that if a user was connected to a then all of that user's traffic always goes to A and if a different user was connected to B, all of their traffic always goes to server b. So the user can't really tell that there are multiple FileMaker servers. There's not two different host names or two different addresses for them to connect to they just, it looks to them like it's they can't tell the difference between whether they're connecting to a FileMaker server or to a load balancer that's kind of secretly splitting that traffic to two or three or eight or however many servers you want to set up. And then you've got mirror sync which is you know the black arrow between those two servers, making sure that they stay in sync so that you know if one user adds a record to Server A, within a few seconds it'll also appear on Server B so that the other half of the users who are connected to Server B will see that new record.

So it's an inexpensive fairly simple setup to do. The load balancer costs like 15 dollars a month from Amazon. The FileMaker server I'm going to jump ahead in my slides for one second and show you this. Look at my highlighted text here, this is copied and pasted directly from the license text in FileMaker. Each FileMaker user licensing contract includes three licenses of FileMaker server. So you're not having to pay for additional FileMaker server licenses to do any of the configurations. I'm going to be showing you that today. Okay, so from a cost standpoint your costs are 15 an hour for the load balancer plus one extra piece of hardware, plus a license for embarrassing.

Okay, so I'm going to just jump in here because we do have comments coming in so once again. Welcome to Stephen Dolinsky! I think here, Lexi just said this for what it's worth the last part of your third bullet is my current use case scenario clients using third-party hosting based in California. We are now adding a server with the same provider in Hong Kong for Asia's client users because access for them across the US from Hong Kong is unreliable and unacceptably slow. That's the whole point of this enterprise conversation right so Alexi heard Lexie could give this presentation. I know how she is, she knows all this already. But the short version we're going to show how easy this is and the tools that we use to make this work. So for those of you wondering what we are going to be showing I got to see the auto load balancer earlier and it just made me all hot and I was excited I was really hot and bothered it was like this is very nice. So you'll get to get but over the next but one you know we can't cram it into one hour so we'll go for another 20 minutes or so once again this is going to be recorded we will you know clean it up a little bit as we go but yeah so what's next Jesse?

So the next, so that's clustering, let's talk about warm backups form. Backups are not super sexy but they're very easy to set up and they can be invaluable. So a warm backup notice I'm going to jump back to the previous slide. Notice my arrow in the clustering sync is double ended; it's a bi-directional sync. Everything you write to Server A gets written to Server B everything you write to Server B gets written to Server A. Server A and B always match and you can write to both. The warm backup scenario is very similar but you remove the load balancer and you make the sync one way. Everybody connects to FileMaker server one and then mirror-sync is just running in the background making sure that there is an extra server that nobody connects to that exactly matches server one.

The benefits of this are pretty obvious if server one goes down if anything happens to it instead of hours to try to figure out what was going on and recover it and recover backups and maybe get off-site backups or whatever you just simply switch your DNS server or your router or whatever your elastic IP address to Server B and now all the stuff that was on server a you know if you're running your sync every 30 seconds then Server B is going to have everything within 0 to 30 seconds of whenever Server A went down. It's much more effective than you know FileMaker backups that you run every hour or two or ten. It's much more live there really is not much of a performance hit when that server is running when the sync is running in the background. So it allows you to basically just have an extra server that stays very up to date with your primary server.

It doesn't have some of the complexities of the load balancer clustering thing that we talked about before. Okay yeah, we got a problem here major malfunction Nathan Schneider just let the secret out. Nathan Schneider says in discord I guess Jesse didn't get the very important memo that Richard's clients don't do backups. I tell you and I rail on that topic because there are people who just argue with me. I got we, we got fired by a customer because they refused to do backups and we told them that it was going to catch fire and melt to the ground. Actually Nick Hunter told him these nice people but they told him this and said it's gonna day it's gonna come with this gonna happen you're not gonna be and this is not gonna work anymore. He goes we don't like Nathan he threatened or uh Nick we don't like nick because he threatened us. I'm like he didn't threaten, he just told you what's gonna happen when he catches fire, right? So they were like offended that oh you're threatening us like uh okay never mind. It's like arguing with mother nature and physics right and you can argue with physics to a point but then you get burned to the ground, right? Physics doesn't really care if you argue with it, yeah yeah somebody doesn't mind if you agree with it or not yeah well you know I rented that once in a while.

So yeah, so it's anyways yeah thanks Ken on these guys all right. So, okay, just so that this is this one but I mean, wouldn't you just use the other one and go back one slide when you use the previous one, because then it would like double it it would do the same thing for you right, kind of? Yeah, so the warm back up I would say in general pros and cons wise, I think there's more pros in this scenario than this scenario. Really? The advantage of well in the land clustering is that I think this land clustering gives you first of all it splits your load in half so it increases your scalability whereas the warm backup does not increase your scalability.

The clustering uh gives you kind of a live failover in case anything goes wrong whereas the warm backup usually would be something that an administrator would need to go and flip a switch to switch him over. So, I think for the most part there's advantages to the clustering that you don't have with the warm back up. Right. The advantage of the warm backup is that psychologically it's much closer to what we're used to as traditional FileMaker developers. So, you know the idea of this third-party proxy, you know magically shuttling people to different servers can be very bizarre.

Dude just stop, just stop, just stop. I'm going to veto this right so Claris, Claris tried this Claris tried to do this, right? Yeah the standby server. For those you're wondering about that. And I'm not sure what I should say about that, I'm not supposed to like you know be overly. The thing is with this is like it's a mental thing so it's like you're saying if we're too old, like that's like uh I'm old and I'm in a wheelchair and I'm in my walker. I don't want to use a new one, it's too fancy for me right? What? I don't understand why this makes it listen. They tried this right? In order for you to switch so these people would fall so this server would blow up and I don't know Lexi was here for this or not.

This server would blow up and then what would happen? These people all go "hey our stuff is offline and we're unemployed" and so then you have to find the it guy a little guy stick figure over here, right? And he has to go over here and come over here and do command line c slash backslash slash and do like four or five lines of backs. And then if you can find the guy one he's not playing some game online or two you can get him to log on then he can do a bunch of command line stuff and switch the line so they go over this way. Whereas this previous slide would have done it for you automatically, right? So it's like an automatic hostage negotiation with the IT guy assuming that your IT people are friendly and happy, right? I think that the warm backup is a good transition. I think that this is a very low risk quick win that you can set up immediately. You can show your client hey look this is working.

Then you can kind of go to our clustering scenario where you say how about if we make the sink bi-directional and we introduce a load balancer? So, I would say do this as a baby step, do the warm backup as a baby step, and then progress to the clustering. All right, if you say so chief we just I think we just get me just skip to the end and get to the one you want right so which is the whole point of what we're doing today, right? So I'm not I'm not trying to pedal. I'm not trying to pedal dog doo doo. Here yeah here we go baby let's go. So this now let me point out, before I really get to talking about this the land clustering option that I talked about before it's really important to understand that is for people that are in a single geographic region you know if all of your users are in one office or one state or one city or one pretty much relatively small area then the clustering option works really well.

But it doesn't work that well when your users are in different continents or countries uh from each other. So then rather than doing like a random distribution where you know kind of a round robin, you get a server you get that server you get the server you get that server. It becomes a more geographic distribution. Basically everybody in this geographic area goes to this server everybody in that geographic area goes to that server and that way everybody has a reasonably fast connection. And that's what we've got set up as a demo, that's we're going to be showing you guys um and the idea here, notice that there's no load balancer. I'm going to jump back for two slides. Our orange box in this case is a load balancer. So people don't connect directly to the FileMaker server; they connect to the load balancer. The load balancer kind of magically talks to the FileMaker server for them.

In this case, instead of a load balancer you have a DNS lookup. And so I've got some after these slides. If I have time, I'm going to jump to my browser. I'm going to show you guys how I've configured the DNS in order to enable this using a feature of Amazon called Latency Based Routing. And latency based routing is all it simply means is that, you will when you say what is the IP address of the server called FMSP.360works.com? Amazon won't just spit out an answer, it'll say "Let me see where you are?" Now, "Let me see where all the available servers are?" and now "Let me give you the IP address of whichever server is A closest to you and B up and running." And so, you will always go to the closest and fastest server that is up and running. The up and running is an important part, because if in this example, if the United States server goes down, Amazon will detect that and the next time that a United States person says "where is my closest server" Amazon won't send them to the dead server in the US, it will send them to the live server in Europe that might be slow but at least it's running. Right.

And that's the good part because in the event of a failure, what happens is people get routed to the next closest server which might be not obviously as fast, but it's better than zero, right? So yeah which is useful. So if people are bobbing up and down Alexis agreeing with us about the warm feature et cetera et cetera. Yeah, so I mean so what we got is about say we have about 15 minutes. We're gonna go about ten after then we're gonna roll it for today. But I do want to at some point today we're not going to walk all the way through to the end of have you know setting this up. I would kind of like to show it through the end product so people know that you know that is kind of working, right?

Even if we just log on to it. So yeah, okay? So before I get into that, uh I'll since I mentioned the wrap 53 thing I'll spend five minutes or less and just show that. Okay so my route 53 console here is so route 53 is Amazon's name for DNS and it's kind of a play on words because DNS runs on port 53. And so that's where Amazon came up with the name and so what I've done is I have created four health checks over my dashboard here. I'm in the health check section and I've got four copies of the FileMaker server running which Richard's staff worked kind of to set up for me. And we've got one in northern California, one in northern Virginia, one in Ireland, and one in Mumbai so that's one, two , three and four.

And so what I've done is I've configured Amazon to check this server by going to this URL and making sure that URL works. Hang on here, one more second, hang on because , I'm kind of zooming in so people can see this right, So all right so there you go so that's URL. Okay good so that is basically making a call to the data API saying what version of FileMaker server are you. I could come up with something a little bit more comprehensive to make sure the database did that kind of stuff but for demo purposes, this is sufficient. It just at least tells us that the FileMaker server is running and the data API is running. And so, in fact here just for fun let's go to Ireland and let's turn off their data API. And this will take a little bit because the checks happen every 30 seconds and there needs to be a certain number of checks that fail before it will really consider it to be dead. But if we check back later then I think what we'll notice is that FileMaker server three will show us unhealthy. Let's pause that, well there's pause for a second, so just so everyone's up to speed on this once again I'm not talking the Dalinskis and Folgers and the tk55678s for everyone else so, you can log on to Amazon when we say Amazon this is not the shopping part of Amazon this is the backend data center technical stuff and you can run your own virtual server here.

In fact Jesse, can you show us the current home screen for them because they revised that on a year or two again right they changed the uh to this so basically for those of you who've never seen this before just as a basic sort of thing. Yeah back yeah all the way out to the super that one okay so scroll to the top so this is when you log on to Amazon and you have your own server. These are all the really cool things that it can do down here and I know it's kind of chunky and it's kind of hard to see but I mean if you log on you can see you know every one of these if you're an IT person is really interesting. Okay hang on Jesse, quit moving because when you move then it's chunking here so you got easy so much. Yeah, I know. There's EC2 where we build our virtual FileMaker server right we have the S3 is where we have our big you know hard drive in the sky for storage right then there's S3 glacier which is super cheap but kind of goofy uh slower back storage if you have like you know many many many terabytes to store on an ongoing basis.

I mean all sorts of stuff are in here crazy and then you saw at the top was route 53 so this is basically a computer developer/programmers, you know the most funnest location ever because there's always something new to learn in here because they're always adding new things. So if you back up a little bit Jesse for me if you go back up , assuming he's there hello Jesse there we go yeah so you see yeah you see the route 53, so this is a separate service separate than the verdict virtual servers right so route53 is our checking the health check. So if you want to go back, it should be updated now. Yeah, so let's take a look here. Oh man, oh there it goes unhealthy. And if I go here and I go to monitor, here's all those checks that worked. And then here's where the checks started to fail. Yeah and so what'll happen is if somebody in Europe were to try to go to the server right now, Amazon would exclude Ireland from the check and it would send them to whichever the server was closest whichever service closest either Mumbai, Northern Virginia or West Coast and I don't know which one would be but Amazon would figure that out and send you to the right place right.

And I mean if you're really serious about this you'd have a server in Germany and a server in Ireland and you could put them all over the place, right? So there's not really a limit here, cool! All right so that part of it and then the last ingredient here is so these are the health checks. This is where I've got to open this other tab right here. These are the health checks which I've turned this back on so before long it'll come back and say healthy. And then once you've configured the health checks then you configure the actual DNS entries. And so I've created an entry called FMSPDEMO.360works.com and you know I'm not gonna I'm just gonna talk really quickly about this and we can watch the video if we want but basically, you set up a CNAME which is kind of an alias to some other server I like to set a really short time to live so that I can change it anytime I want and have it be cached for a long time then which real server it's going to so the FMSPDEMO.360works.com for the us east will go to this is the actual host name here of the real server. And then this routing policy is the norm. Simple just means this server goes to that address but latency means I know this server is running in this region and this is the health check that goes with it and so find you know which of these four things are in the region closest to where the user is.

That's how you can set up latency based DNS and that's the key to making this kind of work smoothly for users no matter where they are. All right so I'm going to repeat these questions and let you handle them Jesse so, this is from Muhammad and he says hello Richard on FMP if you uh on FileMaker I guess FileMaker platform if hosted on Amazon what are the hidden costs as a customer usually have to pay for extra bandwidth consumption, I mean the answer is bandwidth out you definitely pay for bandwidth in not so much right isn't that how that works. Yeah! Bandwidth and is free bandwidth out is nine cents per gigabyte you have to accumulate a very large amount of traffic to have a significant amount of fees from data out. Okay and then I mean if you're doing 20 gigs a month which is a whole lot that's a dollar 80 per month. Yeah so Muhammad also had another question here which potentially concerns me if I'm understand I'm going to discuss I'm going to tell you well the your redraw there needs to catch up so he asked the question. Yeah we'd have to let the screen redraw it's lost its mind he asked the question also can we host FMP apps on a shared cloud storage and have server redundancy question? I'm not sure I understand the question exactly, shared cloud storage sounds like S3 or something, right? Right, and no you cannot put a FileMaker database on S3 you can absolutely do that and anybody who wants to can download that database and work on their own copy the database that works too. What you can't do is you're not going to be able to merge that data together in any simple way. Mirror-sync won't do it. FileMaker server is not even involved, so you would only do shared storage if you want each user to have their own separate copy that's their own local copy that doesn't sync anything.

You wanted that data to sync to something then you would need to have FileMaker server involved and you would need to have mirror-sync involved. And then at that point it's not clear that there would be any advantage to even having the FileMaker databases located on S3 to stick with. You could, you could put them anywhere you could put in drop box or S3 or just download it directly from FileMaker server but you would need mirror-sync and FileMaker server if you wanted those offline copies to be able to share data with each other. Yeah I think I can't tell but sometimes these conversations are conversations about how do I use this without using FileMaker server and the answer is you, if you just want to put it in like storage like you're going to still store a piece of meat in the freezer or if you don't like meat whatever you want to put in the freezer. But the point is that it's not really easily edible in the freezer but that's kind of what S3 is or this cloud storage is.

If you want to have people actually accessing it and actively using it it has to be on a FileMaker server and so the conversation is about not one FileMaker server but three FileMaker servers or four FileMaker servers. And if you buy a license say like you buy a 10 pack or 20 pack or 30 pack of FileMaker, you're going to get three servers that you can use right most people just use one but you actually get three set up in different regions, so I we're back this conversation how do I share with the world without paying for it I think is I'm guessing that's kind of the the question, right? So this, I mean we're in an area here where not only do you have to buy FileMaker server you have to buy mirror-sync and mirror-sync is not free but I think it's worth its weight in gold, right? Absolutely! Without a question.

So we're coming up at five o'clock, I know Richard, you wanted to do a quick demo. Did we want to have people connect to the server today? Not today we're gonna invite everyone in over the next couple days. At some point we're gonna have more awesomeness. We haven't even gone through the FileMaker file or any of that kind of stuff or kind of what we've got cooked up but why can you open, why don't you open it on your end and I can open one on my end that'll be kind of funny. So I need to go to a host so how can I add a host people are going to be like hey Richard we're going to do this with you. Show host what'd you say the host name was for FMSPDEMO.360works.com. Notice we're going to save okay and get the SSL, okay I'm going to open this up now when I'm going to open this up we're not going to share the password everyone just yet. But that will be coming so then, now Jesse opened it up on your it's the title my end it flashed during the start but it's in Northern Virginia. Okay mine says Northern California, right here so you see that everybody. I'm in Atlanta Georgia okay so he's here so he's on the East Coast on the West Side that's why sometimes the screen is a little chunky. Now let's go to contacts real quick, each of us go to contacts and what I'm going to do is I'm going to go to, I'm going to create it's kind of chunking a little bit but we're trying this.

Hang on, everyone stand by. I'm going to, what we're going to do is I'm going to create a or do you want to create a record Jesse you want to put a record on your end and then do you have a picture no like create one for Alexis. I don't have a picture of Alexi though. So I don't know what you're going to do there. I've gone either handy okay okay now I got record six. Now the automatic syncing is going on and it's replicating so we're waiting for that to happen. Oh record seven is here now. So that is two different copies of FM Starting Point enterprise edition, the enterprise one that we have um and it synced. And we haven't even got the conversation whether we're both working on Alexi at the same time. That's a conversation for another day that we are going to you know we got three more days of this but we want to show this now what if I yeah what's important what's it what's the important.

Summarize what just happened because we're all used to the idea that okay Richard changes something and I said I changed something and Richard sees it so what's cool about what we just did? Why is this interesting? The cool and interesting thing is I changed it on a different server than him I changed my I changed I made my change on a server running in Virginia. Richard made his change on the server running in California and then we both saw each other's changes because mirror-sync is running in the background bringing both of those servers up to date with each other. So that's kind of the essence of what we're trying to do here. I just did it again, which was about a second and a half delay. That's what we're talking about now. Imagine this thing replicating now instead of just the east coast of the United States the West Coast United States but there are the servers also in Mumbai India. and also in Ireland. And then we might even put one together for Australia if we want to throw one together we'll have to talk about that.

So, Stephen Dolinsky has a question, if you have a dev server and use DMT which is a data migration tool or deploy or auto I'm sorry we can't say the word auto in this broadcast, what is the workflow with databases in different locations to ensure that they are synced with the latest version? Stephen Dolinsky, I am sorry to say that you have to come back tomorrow, for that actually that's not true we are going to talk about that, that's a big part of it Stephen's like oh I just wanted everything in one hour most people are not as smart as Stephen Dolinsky here, right? So ,I got to bring everyone along so the question is if you change a file in location A how do we replicate that everywhere right we are going to do that. It's going to be awesome! It's very doable, it's very simple, simple right? You just want to walk, do a verbal real quick on that don't do it because we have to have a reason people come back tomorrow, right?

So well it's basically you change one field in the mirror-sync, so the first before I even answer the question I think the first I would start with a question of my own which is if you do have a testing server and maybe a deployment server, what is your goal with the data? Do you want the data to be the same in both FMtraining.tv. Or do you want the testing server to have a testing copy the data and a and this and the deployment server to have a deployment copy the database? If you want the data to be different you know if you want testing data testing server and live data on the production server then mirror sync doesn't really even enter into the equation. You would use one of the tools you mentioned. I would highly recommend our product 360 deploy which does that very well. Yeah and so you wouldn't need mirror-sync if you didn't want the data to be the same on both of those servers. But let's say that you had uh like a staging server and a production server and you wanted those to be identical to each other.

Then you would do that by going into you would get everything set to go on the staging server. You would have a sync running so the staging server has the same data as the production server and then when you're ready to deploy it to the production server. You would just go into the mirror sync table and there's a field with a calculation in there you would change that calculation mirror-sync would see that the calculation changed and on the next sync it would take a full copy of that database from the staging server and move it with all of its data onto the deployment server. So yeah, so it's a question of whether you'd use deploy or I don't know I mean I'd be in yeah because deploy is where you're going to get that data migration tool.

For those of you who are new, we have a whole set of training so here comes as we wrap up the broadcast here, for those of Alexi you haven't seen this before this is kind of funny so this is where we have to put the the shameless plug in here so you're everyone ready for. This is all right, all right. This broadcast is brought to you by FMtraining.tv bringing you the greatest in FileMaker on demand video training visit FMtrading.tv. And right and then we have bundles here and if you're looking for a Double Double Bundle you can do that if you're looking for Jessie's awesomeness where is the so if you want the Jesse 15 percent off mirror sink deal that expires on June 26 it turns to a pumpkin that's the deal you want highly recommend it.

So, but yeah, I mean we for a lot of the awesome FileMaker people here we do a lot of training a lot of it's kind of more beginning, intermediate, some super advanced stuff this I think uh as we go along here from day to day we're going to keep cracking open the level difficulty. Let Jesse get into the code, talk about what happens if we both edit Alexi at the same time and then she hits in between what happens to Alexi. Does she die a horrible death? How is that handled right? Those are all great questions and to be honest with you we have this CRM called FM Starting Point we've been giving away. And we actually went through a process because we use it a lot for training, but it's really been Lean Designed by Nick Hunter, there's you know Nick Hunter and it's got a great interface but it's been really optimized for high performance right? We know it'll do 260 300 400 people on a single FileMaker server.

So we took it, we adjusted it so it works great with mirror-sync and so that is kind of like the default demo go to CRM because we also know it'll deploy around the world. It's already working around the world right now. We just only have so much time to show you. So uh so yeah so if you folks are around once again if you can't make it tomorrow it will be recorded but if you're here in person you can ask questions which is really awesome. Alexi says paying full price for mirror-sync is way cheaper than rolling your own yeah. I had an engineer and to Alexi's comment, I was seeing if she saw this is why Alexi was so great. God I missed seeing her around so I had an insurer come to me and he was like I'm going to roll my own sink. I'm not going to play that Jesse stuff or whatever it was it goes INC or whatever the price think was and he goes I'll rule my own and I'm like okay I'm like okay but good luck with that and so like two months later comes back "I'll never do that again that was the worst it was so hard" and I'm talking about a guy who's really quite talented but his ego got ahead of the equation so um yeah so uh yeah so definitely if you can use Jesse Barnum's brain which is much better than most of ours, do it right? And then Stephen Dolinski FMP natively isn't acidic? Yeah so I didn't want to get into acid once again Stephen because yeah the acid is like the super redundancy availability kind of capability.

I think if you have vigorous backups and you have a uh and you're using like mirror-sync to like either replicate locally or around the world, I think that the question is the question whether FMSP is acid no he's just making a statement Stephen was just saying yeah it isn't natively acid so tools like this get us further down the road which is absolutely I'm just agreeing. So yeah yeah I mean right so that's the thing right? So I mean the idea is that having multiple servers and then one server can back up for another server. It doesn't really solve the transactional kind of thing but if you're a talented developer you can do kind of transactional kind of stuff with FileMaker. Well the fundamental problem with trying to do distributed transactional databases is the idea that you know if you commit it on one server, you know that it's been committed on all the servers around the world. That sounds like a great idea but the problem is it thwarts the whole idea of why you're doing it in the first place which is to improve performance and scalability. Because what that means is that, if you're if you're going to a server that's nice and close and convenient to you and you commit a record now that server can't return a successful result to you until it's talked to the other three servers all around the world and make sure that people committed it too.

So you wind up working at whatever the slowest speed is of the connection between all the different servers and so you know mirror-sync and was and you'll see that in other database relational systems where they'll talk about synchronous transactions meaning that uh synchronous mainly all happen at the same time meaning that it happens that whatever the slowest transaction is that completes. I think in general we want this to be asynchronous. We want it to be non-transactional because we want to be able to know that we're working at a fast speed to a local server instead of waiting for the latency all around the world. We just yeah, we just need a plan to triage the uh the coalition the double Alexi collision thing. So yes which we'll talk about tomorrow we're going to talk about that tomorrow so everyone I want to appreciate you coming to FMtraining.tv once again don't forget to keep an eye on this if you want to sign up and get a reminder click on that down there you'll be talking to your our FileMaker server and it will load you into a database and it'll send you a reminder which is useful.

You can watch it on Twitch on YouTube or get the discord invite which is up here and uh and then you can participate and Lexi and Stephen and folks over here definitely wanna if you wanna check that out feel free. Because it's kind of a persistent conversation, it's ongoing. Um, we're kind of building a community here of people who are trying to learn because that's why I do training. That's pretty much what I do all the time. So anyway, Delinski had one last question, can mirror-sync potentially do be an audit log? We don't really sell it that way. It does actually keep an internal audit log and it will record a log file record into a text file every time that it writes a change from one server to another fmtraining.tv.

It's not really it, it's not really written in a way that's designed to be like easily pulled back into FileMaker or queried; it's more for a human being to be able to go back later and say why did this record change from this to that. The other, there's a big limitation of it for audit logging purposes which is the way we do deletion scanning and deletion detection. And that's kind of maybe a little bit too long of an answer for right now but the really short version of it is mirror-sync doesn't know who deleted a record or when they deleted it. It only knows that a record was deleted uh and so a lot of why you want to do audit logging is to know who and when not just whether. So it has limitations for purposes of audit logging.

All right everyone, I appreciate it. We'll be back tomorrow at one o'clock at the same time, same place, same channel one thanks to Ken, Nathan, Schneider, Dave one, Dave two, Lexi, Stephen, Dennis, Michael all the people from around the world literally a worldwide audience here. Once this is recorded you'll be able to catch the recording a little bit cleaned up it'll be on YouTube etc. But in the meantime we'll catch you tomorrow and for now Jesse and I and the folks at 360works see you later.

See you guys! Thanks Richard.

Transcript

Day 2 - FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum

Hello, everyone! Welcome to Tuesday of an awesome broadcast about the FileMaker platform. We're working to train everyone on being awesome FileMaker developers to make awesome solutions specific to you. Which is great, your customers need you to make great FileMaker solutions and to help you do that, we are talking to Jesse Barnum over these four days, where we're talking about awesome stuff. In fact, that's his smiling mug right there on screen. So what I'm gonna do he's muted for the moment, which is awesome. I'm gonna move him out of the way.

Welcome to day two FileMaker and the enterprise right, and we got Jesse Barnum here, which makes things a lot easier because without a solution like FM Starting Point, without a product like 360works, mirror sync, getting to the enterprise is really hard, right? So let's talk about, today's day two, this broadcast is brought to you by FMtraining.tv, where we create a great training curriculum, and we really appreciate all the people who support it. All the people come here on a daily basis. They buy the training, they help support the channel because really yeah.


I mean this is like this is the money we got from Claris to do the broadcast right? No, that's not it. They actually give me they actually yeah. It's like you know you, you would think there'd be at least like happy smart thoughts and smiles and stuff, but we just like to look at each other. So for those of you senior developers out there in the community yeah. You know that is. So anyway, the broadcast is not sponsored by anyone, but it is funded by people like you.


So definitely check out our FileMaker Training at FMtraining.tv. Now keep in mind, we do have upcoming broadcasts. If you go to FMtraining.tv, you can click down the live tab, come down and see the upcoming scheduled broadcast. We are broadcasting every day at one o'clock, Pacific Time. The content varies between beginner and super ninja advanced, which it gets to a point where I can't even do it. It's like super advanced right, and so I bring in people who are much smarter than I, and I can sit there and learn with you and everyone else right, pretty cool.


So once again, this week is about the enterprise. Really cool stuff, I think, is very important stuff, but that's because Claris is starting to position the product as an enterprise product, right? And really the only way to get to the enterprise right now is with Jesse. If you, if you want to go to the enterprise, you need Jesse or you need, you know, a spare two or three hundred thousand dollars and a lot of time on your hands. But Jesse cuts the corner and makes it easy for an amazing, amazing, low price.


And so let's talk about well we're almost to the amazing low price, but we are broadcasting in high definition, 1080 to both YouTube, Twitch and Discord. I'm going to press the button over here to make sure I bring it up on YouTube, so Jesse will be talking whoa, I hear myself talking hush. So that's what I was about to say, is that I am going to be monitoring Twitch and YouTube and Discord, because all these conversations going on discord is more for the people who are kind of returning people who come in all the time.

There are people who want to learn ongoing, not just kind of the enterprise stuff and so we'll post an invite over to discord for you in fact, once they're on twitch, already I'll copy and paste that over to in fact, Brederman. If you can go to discord and copy and paste well, you can't do it either right? I have to log into YouTube, but YouTube doesn't trust anyone to actually put anything in, because people start to put it not safe for work. Photos into the broadcast, which can get a little exciting, a little racy, right? So so I've got Twitch, YouTube and Discord going excellent moving down the line. So once again, if you want to help sponsor or support the broadcast, we recommend that you check out our training.


We have these great training bundles right here. If you look in your right there they're that way right so we have a training bundle with comp, which includes special versions of FM starting point. All our training training and a full copy of FileMaker pro 19. And you can get that or you can get the video only training. If you're looking for a devcon discount which we're starting to run now, because we're just weeks away from devcon you can go to you can get that and get a Double Double deal right. If you go in and out get a double engaged burger, you basically get two basically for a really low price.


And so, you go to that link right there. We will copy and paste that link, bitly and forward slash FM Double. Now, Jesse also has his own amazing photo right. This is Jesse at 360works with his team of awesome developers once again, I don't yeah, I don't think that the FileMaker community would be what it is without a couple of vendors, like Jesse that really make mission critical products. And so, Jesse has a deal right now. If you want the software that you were talking about today, you need to go to 360works.com and you're going to, I guess you could press the FileMaker forward sync down there, but the promo code you need is RCCLIVE2020.


So this is 15 percent off of mirror sync, which is that this is a considerable saving. This is at least 150 well, probably 150 bucks off. It depends on the licensing of what you're doing with mirror sync. They have kind of different tiers and stuff, but someone be like you know, “Oh, I can't afford mirror sync okay,” but then you can afford to spend two months of work, trying to write your own sync solution right. So we had people, yesterday, we had some very senior FileMaker people in the community. They said, oh yeah, we would never want to write our own sync solution. It's just a bit better to pay the thousand two thousand dollars to Jesse to get the software that just does it automatically.


So way way better. Jacob Taylor, Jacob Taylor - are you there? Yes, sir?

Okay, so give us our news issue that we ran into. We have this, it brought to my attention, I missed the memo last week, but there's basically this really gnarly exploit for windows that just popped out and I'm trying to figure out well. Did you post that engineering thread or where'd you post that too? I emailed it out to the company? Well, here it is right here, so this is the thread right here, so I got it on screen right now. You want to give us the 60 second summary of this exploit and the fact that if you have a windows server, especially if it's not on Amazon, especially so you need to get it patched, do you want to run through that real, quick?


Yeah! The very short version of it is they found an exploit in the DNS lookup system or the DNS server system of windows, specifically. And it's remotely exploitable and so for sort of obvious reasons. That is a huge issue. I think it's probably a bigger risk if you have on-premise servers or something like that. Mainly because that page that Richard actually has up there is the original research, where the people at the company that figured this out found it. And they sort of point out that you can take over the entire windows server via a basically finely crafted. You know someone looks up a domain on the server that response comes back with that IP address. You can stuff some extra stuff in there and then you just have control over that windows domain server.


And that's a huge issue for any enterprise, absolutely massive, and so the very short version of that long description is you need to do your windows updates asap if you have not done them. And so if you're, if you have windows, desktop computers or something like that, hopefully they're on automatic. But for servers that may not be, you just want to jump in there as soon as you possibly can and apply the latest set of patches.


They came out last Tuesday, the reason we're sort of throwing up the flag on this is because Microsoft took the somewhat unprecedented step of sending a push notification to all of the people who pay Microsoft for platinum, whatever. You know lots of dollars per year for support from Microsoft directly. They sent push alerts to all of those people's phones telling them, “Hey, you need to install this month's windows updates, asap.” and that they've never done that before and so we are, I'm interpreting that loud and clear signal as a loud and clear signal. Yeah, we need to install it today so.


Okay, cool! And then Amazon does try to block this traffic already from even getting in. But yeah. I assume that they would take something like that seriously and they might apply. It's possible that they will apply mitigations to it. I personally at least assess it as a little bit lower risk. Obviously, you should just still do it as the short version. Yeah, yeah, it's a little less time critical because they'd have to mess with Amazon to get this done on the Amazon servers and, I mean maybe you can do that. But that's just a hard task. Basically, it's a little harder than messing with some small business or something like that all right, so I'm gonna pivot away from this Jacob. Thank you for your input.


I'm gonna recommend you go ahead and mute if you want to hang or not. That is fine with me. I'm going to activate Jesse, so we're going to break the glass and activate super Jesse, Jesse. Are you there, hello? I figured out how the mute button works. Okay, there you go yeah, you had it backwards. Yesterday, I almost got a walker and a wheelchair in here for you because you're too old to use a mute button and I'm like [ Laughter ]. He can code Amazon up, but he can't use slack. So I don't know, I think, that's fair. I think that's fair, all right so show your screen.


What are we so like? Can we recap briefly yesterday? So yesterday we laid the groundwork. Once again, I want to welcome Alexi back. Also Dwayne Mossy is hanging out too. All sorts of lurkers from the FileMaker community that are hanging out here, Jay Dripper there and reno we're not doing any adjudication. Obviously Paris is here from your team. I saw her show up, so a lot of people here. So what are we looking at Jesse and why do I care? What are we doing here? Yeah so well, first of all, and then I want I'm gonna move yeah there we go move my yeah you're good. I just can see this. Let us just keep it out of the way down there, yeah so. I just wanted to first of all reinforce something that you were saying Richard, which is, I love, getting questions while we're presenting the stuff.


So please, you know if you guys have any questions you want to put in uh. You know I've got some people from my staff on Richard has got people from his staff on, and it just makes the presentation a lot more interesting, especially for those of you who are here live while we're doing it. You know feel free to jump in with anything you got, because I always find that makes the demo more interesting, rather than just me kind of doing a can thing. So yeah, keep the questions coming. Alexia, I saw it was your birthday today, so happy birthday! Let me move on. I think what we wanted to talk about today was the actual installation process. What you're looking at, by the way, isn't really part of the presentation, but it's more interesting than just a green background screen. This is the mirror sync configuration client. This is the application that gets installed. It's a desktop app, you double click. It and you connect to the server that mirror sync is running on, to configure the sync and to monitor it and see how it's going. As you can see right here, I've got my hub server. Is this address right here? That is our Northern California. Server and then my spokes are B, which is Northern Virginia and C, which is Ireland.


I've got it set to auto sync every five seconds, something that oh. Can I, can I stop. So can you before you start installing stuff? Can you explain, I mean right now: verasync is this vaporous magical box of unicorn dust or some crap? So what is this and where does it go and yeah and so you're? And so, where is D on here? We are not going to do D, today's the 101 D that we're doing. That D is Mumbai. Should we do that today? Well, today, yeah and then Australia. Today is Mumbai and tomorrow's Australia right. That was yeah. Let us, let's get started. Okay, okay, so, but explain to us. Where is the syncing going on right? I mean I don't need to like it from a structural standpoint, where is the software going? I mean if I had one server it'd be pretty obvious, it's on that one server, I guess right?


But if we have four servers or eight servers, where is mirror sync, I mean this is part of a service that is running on this machine. Is that what we're doing right here? Yeah, when you run the mirror sync installer that you can download from our website, it installs as a background service. That is either on Windows or Mac. You can also install it on Linux, it's a little bit more kind of you're on your own, a little bit with Linux, to set it up as a service. But, yeah it installs as a background service. If I were to quit this application right now, it would not stop the sync from running. This application that we're seeing right here is just very similar to the FileMaker server admin console. Okay, that's the way that I interact with the mirror sync server. So it's a mirror sync admin console. It is a mirror sync admin console Mac, it's Mac. I like it. I got a new acronym Mac time for some Mac baby. All right, I'm making notes here.


Mac, got it, got it, got it yeah, being serious. Okay, but that's exactly what it is. You know just like when you log out of the FileMaker server admin console FileMaker server is still running, when you log out of this mirror syncis still running. I could reboot the box that mirror sync is running on and not even log in to that machine as a user, and it would still be running and syncing in the background as a service. So this goes on one of our FileMaker servers. Could it go on a non-FileMaker server? It could, yeah. So mirrorsync, it's a Tomcat Web Application, and so you can install anywhere that tomcat can run. Tomcat can run on virtually any device. People have installed tomcats like cameras and portable phones and stuff, like that. We actually have just reminded ourselves of a really cool use case. Marty, Thomason, if you guys have been to devcon, you might have heard Andy Lecates when he gets up on stage to talk about kind of cool ways that FileMaker's helping our world and our community. He'll, often bring up Marty Thomason's project youth with a mission where they get on a hospital ship and they go around Papua New Guinea. And they do kind of they go to these tribal villages and they do medical stuff for them and Marty's using mirror sync to sync between the devices that they take into the village with them. And a FileMaker server that sits on board their hospital ship, which is parked off the shore.


But the really cool thing, I mean that's cool, but the thing that's really cool is that Marty actually brings a mirror sync server with him that he runs on a raspberry, Pie. And if you're not familiar with what a raspberry Pie is, it's basically like a little 35 dollar bare piece of silicon that you can hook a keyboard and mouse up to if you want and program stuff in. sS he's installed Linux on that raspberry pi and he's installed, mirror sync on it as well. So they'll just sit that on a piece of stone or something like that with a battery, sit it on a table or a rock or wherever they put it. And that has wireless access and all of their devices. Sync up to that raspberry pi, and then they take that back on the ship with them and sync it up to the main server.


So, yeah mirror sync will run on virtually anything, but the installers that we ship with it are designed for Windows and Mac. Okay, cool! So then, if we have three servers right now, do we install mirror sync on one server or do we install it on all three and why? So, the only one that is necessary to install them is one machine, and typically most people will install that on the hub. When you create a new mirror sync configuration you designate one server as the hub. And sometimes it's a little bit ambiguous about which server you want. Wow, I just saw lightning outside, like really close yep. That is like a quarter mile away!

Okay! Well, if I suddenly disappear, you know why. Okay so, yeah you'll typically install mirror sync on FileMaker server, which is the hub, which is kind of like, where most of your users connect to.


My kind of rule of thumb, for which machine to make the hub Is that if you have multiple servers, if you're going to delete all of them, except for one and then make a copy from that one to the others, which one would be the one that you keep and then that's your hub? Okay? So we only have to install it really on one server. It only has to be installed on one server. Installing on all the servers gives you some nice optional benefits. Basically, what we can do when you have a mirror so the FileMaker server admin console does not have the ability to upload and download FileMaker databases. The data, the admin API does not have the ability and I've asked and asked and asked, but it's not in there. So if we want to transfer files between FileMaker servers, we have to do it using some mechanism other than what FileMaker gives us out of the box. So that's what you install mirror sync on the other servers for. So we've installed mirror sync on all of our servers, not because it's necessary, but because it allows us to automatically move our file from the hub to those spoke servers without needing to go into the FileMaker Server Admin Console. Close the database download, it then connects with the admin console to each spoke, upload it and host it.


Okay! So I'm going to interrupt right here because you're hitting on a topic. There's numerous questions going on across the line here and they're asking about this, so you basically for synchronization. If all you care about literally, is that you're going to set up the files and they're going to talk and they're going to sync, you only need it on one machine. That is one. Yeah you're, going to, If you're going to move the files around yourself, then you'll need it on one machine, but almost no one wants to do that. So basically, we're saying that you don't have to put on other machines, but you really need to because that way, we're going to demonstrate this probably, tomorrow is we're going to post a new file and it's going to push out. We could do it today, it's a small file. We'll do it today, but we're going to update the size of the database, so it's nice and fat for tomorrow like right, and so the idea is more enterprise, size and so, but today we can show that you could change in layout, change a script change something make a note and then what it'll do, is it'll push that out to the servers automatically and then sync and turn them on and sync, it's really it's cool.


So while he says it's kind of optional, it's really not optional. You really want it, okay? So, that's an important thing now, Mr. Scott, I'm not sure what your Mr. Scott! This is because I know like four Mr. Scott's says, “Would it be considered best practice for performance to have a dedicated device server for the mirrorsync, so as not to place the actual load on the actual FileMaker server.” Sorry, could you read it one more time? The short version is, are there performance consequences for sticking this stuff here on your FileMaker server? Because if this is, if this is busy and the server's busy, then they're too busy for one machine, and then you have a problem. So uh, if performance is critical, then yes, I would recommend putting mirror sync on its own separate box. When mirror sync, let's say somebody, most operate like you can see right now. This sync is running every five seconds and it usually takes about four to five seconds to finish


There's no changes happening and the vast majority of that time is initiating connections to the servers around the world. And each server, so we've got, I want to say we can see it here. I think we've got like 20 tables. I don't know, I don't have a count of them, but it looks like it's probably approximately 20 tables. There's about 30 in the system, but you're probably not syncing them all right? So yeah, a few of them that we skipped that Jonathan pointed out didn't really need to sync. So, what's happening each time that this goes to sync, is it's using the data API to kick off a script in each of these three locations and each of these three servers then does 20 fines. It goes to the first table in our sync o2 calendar and it'll say: Has anything changed since this time stamp? No. And then it'll do the same thing here and here and here so basically what's happening is it's doing 20 find operations every time this thing kicks in and then coming back to mirror sync and saying nothing has happened since five seconds ago when you asked me before. And so, that puts a little bit of load on the FileMaker server, but really not much. It's 20 searches, they're indexed searches and there's not much going on. On the mirror sync side, very, very little activity is actually happening, but let's say that somebody went on to: Oh somebody changed something that was me, Sorry, I'm over here. Everyone can see me doing evil. I just changed Alexis. She now has her official photo in here and she's now a FileMaker developer, which is awesome. So happy birthday, Alexi. But yeah. So that's the change right. So perfect keep going. So let's say that somebody went on and they did a find all in contacts and there's 20 000 contacts and they did a replace field contents on 20 000 records.


Now it's gonna have to churn a lot harder, because now we go to FileMaker server and say: Hey has anything changed? It's like oh yeah here. What do you know? 20 000 records. Here you go, do something with them now. mirror sync needs to get those 20 000 records, write them from the one server that they're coming from to the other two servers that they're going to, and it needs to update its own internal database. We use HSQL, which is an open source, very, very high performance database, to keep track of which databases we've written all those changes to. And if there's 20 000 records, there's more load happening. So, to get back to Mr. Scott's question and I think I know which Mr. Scott, that is because I think he might, well, never mind but to get back to that question. Yes, what I would recommend if performance is super critical for you and you, you anticipate very heavy volume like that, where you're transferring tens, tens or hundreds of thousands of records and maybe millions of records during a sync, I usually like to put mirror sync on its own separate box separately from FileMaker server and my particular preference is a Linux box. We do mirror sync hosting for a lot of customers and we have one dedicated mirror sync Linux box that has a very fast hard drive on it. And so we don't install mirror sync on our FileMaker servers for anything other than this automatic file upload and download stuff that I was talking to you about.


We have a dedicated Linux box that we can monitor the performance on there, and then we're not dragging down like the performance on the FileMaker machines, where mirror sync can get very CPU intensive, as if there's a very large batch of conflicting records. Conflicts take significantly longer to resolve than non-conflicting changes. So if somebody had a 10 000 conflicting records on this server and somebody changed the same 10 000 records on that server, you would see the CPU definitely spike to 100 percent from maybe 30 seconds to 10 minutes, or something like that, while mirror syncresolves all those conflicts. And then that would affect the performance of the FileMaker server. Stop! Stop! Stop, you just hash a sh. It's going to be a million questions so before we go too much farther into conflicts, right.


What I want to do is ask Tarman's great question. I already prepared you for this question. It's coming you're ready here we go, what if the Mac hub or the Mac cup, that's right! It's the mirror sync! I love it. They are using my acronyms admin console awesome, whoever that person is, you're now my favorite person today. What if that server, the sinky server goes down, it's broken. And so, suddenly all your servers are running wild without any sinkiness. Can you help us with that?

Yeah. So if the, if this admin console were to go down, nothing bad would happen. You know I could force quit this thing right now. I think I will just for fun force quit this thing, and, so mirror sync is still just running along just fine in the background, it's still running every five seconds, updating all the servers and that's going to happen, whether I have that open or not. Okay, stop. What if the service dies? If the service dies, then all those FileMaker servers are still up and running, but they're not syncing with each other. So changes that we're making in Northern Virginia are not going to California or Ireland and vice versa.


Okay, they will all start to accumulate some kind of divergent changes and people may not even notice for the first five or ten or a half hours. You know, but then at some point, somebody's gonna be like “Hey, I'm making changes here and they're not happening there” So what do you do about that? And assuming so you know, obviously, once you get near sync back up, then the syncs resume and they'll resume exactly where they left off. So it will catch up on that next sync, it'll have a much bigger workload to do on this next sync, while it catches up from that downtime. But it will not miss any of those changes. And there's, remind me when I well i'll try to remind myself there's a section in the configuration screen where you can configure advanced notifications.


And the advanced notifications feature allows you to use Amazon Cloudwatch, which that's a whole different topic that could be a whole another webinar, because cloudwatch is pretty awesome. But we can send notifications to cloudwatch with metrics, like, for instance, we can tell cloud watch, here's how long the sync took to run, here's how many records were inserted, here's how many workers are updated, deleted number of warnings and number of errors. Oh, I would love that, we have to do a video on that right. That would bite yeah all that kind of stuff. We can report that every time a sync runs, we can go to cloudwatch and give it a dump of all the stats from that sync and then what's really cool is that you can go into cloudwatch as a developer and you can program cloudwatch to say “Hey, if you don't get any sync metrics for 20 minutes or 90 minutes or four hours or, however long you think the longest sync might take, if you don't get anything from mirror sync for a 30 minute period, then I want to get a notification that you haven't gotten anything.” And so that way you can actually get notified of not just when the sync is running, mirror sync can do that itself.


There's a feature that can send you an email when a sync runs. You can actually get notifications from cloudwatch, if mirror syncis not running so you can, you can configure that to know if the server has died and then you can get back on and figure out what killed it and bring it back. So everything catches up, all right. So those are really great questions for everyone, so the answer is you can install it on one place, if you as a minimum, but you really need to install it multi on each of the servers. Okay, that way, you can push the updates out too. If the main machine that's doing the sinky stuff blows up, you don't no one dies, but these machines aren't sinking, they can continue to run. And then, when you restart this the sinky, I call it the sinky process, then it all will catch back up, which is great, which once again, if you're really doing like multiple servers, you've got hundreds of people. I think you just might want to pay the 12 or 30 dollars a month or whatever it is for a T2 large or something like that Jesse I mean you're, an Amazon guy. What would be a sufficiently beefy Amazon instance for just the sinky stuff, like that?


I think we run ours on a T3 large, Oh yeah, the new ones are T3, and I would recommend the T-class, not the M's, because mirrorsync, while it does occasionally spike the CPU, it should never really get in a situation where it's pegging the CPU for a long period of time. So those kinds of the T classification should be fine. You're not going to use up your burst credits on those. Yeah and a lot of people didn't know what we just said. So we will remind me to cover that another broadcast, where we cover burstable Amazon instances and stuff that we've trained people on. So yeah. Basically, the T-class is the cheapest and it will work great with mirror sync. Yeah, perfect, so cool. All right so then, do you want to go through the installation, so we are looking at that we're looking at the server. This is the server in California somewhere, I guess wherever that's okay, but we, but we want to set up our four servers, which is where we're going to set it in Mumbai India. Is that we're going to do that, yep?


Okay. So what I'm going to do here, is I am going to minimize this for now. And then I will switch to my RDP and I will jump into Mumbai. Now, I did have mirror sync installed in this box before, but I've run the uninstaller, and so mirror syncis no longer on this box. If it was, you would see it right here. There would be a 360 works folder. This is a 360works folder, Okay, so but FileMaker server 19 is here, correct? Yes, and let me jump over there, that is this admin console right here, this 1701 D. Yeah. So this is Mumbai, notice that the only database that we have on here is our sample file that comes with FileMaker. Also notice that I do have the data API enabled mirror sync does rely on the data API in order to kick off the sync script. Yep. But this box is just you know, like straight plain, vanilla straight up out of the box you've just installed FileMaker server!


Oh, I have a question. I have a question since you're right here, so we're using dappy to sync, correct? So, as I have so many dappy credits, this happens to be yeah. I have to tell you the story about me trying to get a site license from Claris to demonstrate this, for you folks. They basically, nicely said yeah nevermind, I'm not gonna we're not using anything from their Claris, is not in any way assisting in this broadcast today, which is unfortunate. So these are actually my credits on my company site license right. So the question is, if we're doing a lot of sinky, then this is gonna run this up, and then I have to make sure I have enough credits here, I might have to buy more credits, right? The short answer is no. Really, but let me see if I can prove that to you, I'm not sure. If I can, you don't have to prove it. It's just yeah. Here we go. This sync has been running every five seconds all weekend long. The total data transmitted this is Ireland, now we're looking at Ireland the total data transmitted by the service.


This host is four and a half megabytes, which is basically zero right, but it's also not in use by too many people. My point is, it is deducting. What am I saying that you should pay attention to? You should pay attention to it as opposed to uh. You should pay attention to it, but I can almost guarantee that mirror sync will not use up your data bandwidth. And the reason for that, is because mirror sync doesn't do any syncing using data API, which is a weird statement and it sounds like I'm being contradictory. But what is actually happening is, mirror sync is only using the data API to start a script. That is the mirror sync script. The mirror sync script then uses insert from the URL to talk back to the mirror sync server.


Oh you're, kidding, you're kidding me, totally. Ah, okay, yeah. So the data that goes back and forth the real heavy duty, actual record data, is transferred between FileMaker server and mirror sync using the insert from URL, which does not count against any of your data API bandwidth. So when that thing finishes, it will return like one kilobyte of data going “Hey the sync the script ran.” It doesn't even return that actually. You know it's basically like an empty header, saying 200 HDB status code. I'm clapping, I'm clapping, because you're impressive and that's sufficiently awesome. I don't know about anyone anyway, they're clapping out there, everyone's quiet, I think they are dead or something. Alexi probably went face down into a giant birthday cake and is on a sugar overload. So honestly, I didn't I really didn't do this to try to get around FileMaker's database. Well, no, I listen. I want them to make money and I want them to be happy, but if you're not on their Christmas card list now, I now. I know why.


So the reason I did this is because we have far more control over the streaming behavior than if we directly interacted with the data API. Using the insert from the URL, we can break the data into little small chunks and stream it to ourselves, whereas with the data API, you have to use the next behavior paging stuff and there's various kinds of performance problems with that. So this allows us as a side effect to not run up the data API usage, but the real benefit here is that we can actually stream an unlimited amount of record data without running out of memory. Yeah.


I thought it was quite impressive. Okay good well, like I said I always learn new things. That is a good one. Yeah it seems to be inserted from URLs way more tested and way more reliable than you know the dappy, so okay cool. Yeah and you can use all the curl options. You can use like yeah they really. They beefed it out big time as well. Yeah, it's been the favorite play toy for the last couple of years for all the developers. So yeah, all right, cool, okay. So, let's, let's actually keep going and Alexi says she's clapping she's, not eating cake, which is good because she could never do it. I don't know if she sells ice skates or not, but on her birthday she's supposed to eat cake. Yeah, but ice cream, don't eat cake man.


I'm telling you we're looking back on at the Mumbai server, notice that we don't have FileMaker starting point on the server and notice that we don't have mirror sync installed in here. So let's just do this from scratch. Now I do have one thing that's already done, that I didn't want to undo, which is I i've i've already set up my DNS remember yesterday, I talked up talked about how to set up kind of that DNS kind of cluster so that the super DNS yeah we're going to demo that tomorrow for everyone. Because today we're setting up a server tomorrow, we're going to set up again but we're going to go deeper. So we're getting two server deploy dates for everyone, so yeah. So mirror sync is not installed in the Mumbai server, but it is part of our kind of FMSP360 works DNS cluster.


So I'm going to the mirror sync page FileMaker dash sync, you can also type in mirrorsync.com, which is what I just did. I'm going to download the current version. notice that I'm not doing any of this download buy stuff because I don't need a license key on my spoke servers. The only machine that you need to buy a license for is your hub server. So when I go to install mirror sync on this Mumbai server, which is a spoke, it's not going to ask me for a license key. The only reason I need to install it, is just to move the files around. So i've downloaded it, I'm going to just do my normal kind of extract and install. And the installation might take two or three minutes. So that would be a good time. If there's questions to switch to a few questions. Well Alexi says hell: no on the cake and she's still skating, which is pretty cool.


Ken tk. All the folks on Discord. Hider is from somewhere and he just deleted his message. I didn't get to see Alessandro hi to all HDB from Vancouver. Once again, everyone has questions asking the time for questions as we stare at the installation. That is fine! I'm just picking all the standard options right here. Yeah, allow mirror sync to report. Oh yeah, so basically, when you check that box, then we can know how fast mirror sync does or doesn't run that kind of stuff. And the username and password that I set there that doesn't need to match anything in particular. It's just, I need to use that username and password if I ever need to administer nursing, which I won't in this case, because it's a spokes service, so there's nothing to administer on it. If a spoke has a problem, does it report itself back to the hub or how does that work yeah?


If the hub cannot communicate with the spoke server, then that will cause an error in the sync and you're able to. I'll show you in the configuration where you can set email notifications, so you can get a notification if a spoke is unavailable. Okay, so right along that line, so between the hub and the spoke, we're moving traffic back and forth kind of but I have you know my brain, I haven't quite. I mean I understand the insert from the URL, but it's almost like. I mean it's a really backwards process. Essentially, here's the best way to think about it. The best way to think about it is we're making FileMaker server work exactly like FileMaker client, Oh so you're, using the way, the psas on the server to do the uh. No, we use data API, execute script, call. Okay, execute button but execute a script, but what, what is executing the script? What client is so basically so, let's first talk about how mirror sync works on a client like FileMaker pro or go. Yeah, if you've got FileMaker on an iPad, you click the mirror sync button and yes kicks off the mirror sync script, which then uses an insert from URL to have a conversation with the mirror syncserver to move data back and forth right. That make sense? Yep. When we call mirror sync on the server we're basically just using the data API to virtually reach out and press the mirror sync button. Okay, that's all that's really happening, is that we're saying, run this mirror sync script as if the user had clicked it on their FileMaker go or pro copy. And as far as the data API is we passed it nope uh. I don't think we. I don't even know if we passed any parameters. Oh yeah, we passed a few parameters in. So the web, so you're telling the web publishing engine to run the script, for you is what you're telling that we're telling the web publish engine to simulate a book A client on a client and so you use dappy to trigger that. I got it. Get it because when we do our stuff yeah, I mean part of doing basic push and pulls with PHP and stuff like that.


Do you have the option to trip a script? So that's the main mechanism you're using. Got it. Yep and when we're doing it with multiple spokes like in this case, you know between these three servers, we're using the data API to simultaneously send a signal to all three servers, making them all essentially kind of click that button at the same time and then mirror sync, will mediate between them and make sure that they all get the right data for each one. Okay. So if the web publishing because this is going to get to my question I was asked about what was the comport port numbers between on this communication but it's really the web publishing engine running a script, but the web publishing engine is basically a client, so the port number is five zero zero three then right! Yes, uh! It's going to be four four three, because we're using the data API.


Oh, that's the right insert from the URL and it's encrypted, yeah 443. So that port has to be open, got it. Yes, yes, on both mirror sync and FileMaker server, because mirror sync needs to initiate a connection to the remote server on port 443. To say “Hey, could you start the script running” and then that remote server is going to initiate a connection back to mirror sync on port 443, saying “Hey, I want to sink” so each warrant is initiating a connection to the other wow. Okay. I just now caught up with that and it is pretty clever. Michael Mann, OS U.S, I think he's one of your customers, can Jesse, explain the newest ability of sync just to sync, multiple spokes versus having multiple configuration files. Yeah, okay, yeah. Let me say that's actually best done in a demo and so I'm gonna. That is actually getting to the next. That is the next thing I was going to demo yeah, I'm going to show that right. Okay, so I might have uh.


Oh and oh, that's right, I had minimized it. I just quit it now. Okay, so hey so, Mr. Scott, we'll get to you in a moment. We are just going to show that one for a second, because I can't have Jesse blow up. Michael, I think I remember talking to you about this on our tech support, when you asked me that question about multiple configurations versus a single configuration. And at the time, we didn't have the ability to run multiple con, multiple spokes in a single configuration and so I told you just set up you know multiple different configurations each one is a single pair. So what we could do here is we could have one configuration so this FMSP right here is, Oh, did I disappear no you're still here you're still here, oh okay, I'm just muted. My slack thing disappeared.


So I thought I was gone. No you're fine! So here is a configuration and that FMSP one thing you could do, is you could create, if I have three spoke servers, I could create three configurations and each one could be Northern California to the east coast and the second configuration Northern California to Ireland and then a third configuration Northern California to Mumbai. But what is working now is a single configuration with multiple spokes, I'm going to turn off the auto sync. And this is the part that I was working on so hard last week, and this is the part where Richard told all of you, Jesse's working really hard sending a nice email and I got like a dozen emails from people saying, you know, hang in there keep going, and that was really nice and it actually really did make me feel good. So don't give up on life. Well, listen when we train every day, it's really funny because Claris and a lot of us everyday, we're here, right and a lot of the senior people and stuff. That’s fine but people want to learn this stuff and if they feel like you're having a hard time and you're going to give up on life, then we're going to help you out.


Okay, yeah! It was really cool. It felt really good. So, thank you guys for sending me an email thanks and I could just picture Richard, saying you know: hey go bug Jesse. So what I'm going to do now is I'm going to edit this configuration and show you kind of what the configuration process looks like and I'm going to add the Mumbai server. So here's our first screen of the configuration. What is our hub database, and these are all the databases that we support FileMaker server. We can support any JDBCdatabase. This is what you would use for like, for instance, if you were thinking postgre SQL, is that you would pick the JDBCdatabase option and then you would fill in all the JDBC options for postgres. Microsoft , SQL server, mySQL Oracle, salesforce, Amazon, Redshift, and you won't see it in this screen because it can only be spoke, but we also support Amazon dynamodb. So I'm not going to spend a ton of time on this screen because we're we've only got 15 minutes left and I've got a lot of Other things I want to show still so I'm just going to kind of if there's a particular highlighter on the screen, we can go to another part. We can go another 30 minutes right, we are flexible here. I mean I know some of you have a hard stop at the top of the hour, but it is recorded. So yeah and you know I'll spend more time. I think tomorrow, on the actual configuration for now, I'm just going to kind of quickly move through this stuff.


So this is our hub screen where we tell mirror sync here is where our hub server is. This is our Northern California server, which is our hub and here's the username and the password for our database, the username and password for the FileMaker server admin console. We can click choose to see a list of the databases and so that's, the next screen that it's going to come up with is telling us hey. You need to create a layout for each table that you want to sync and, to paraphrase, what's all the instructions on the screen you just create a layout.


The layout can be totally blank. There just needs to be a layout because of this, so it's a script, kind of a context to run on. But you do need to have, every table needs three fields: a primary key, which you probably already have, a creation time stamp, which you probably already have and a modification timestamp which you probably already have. So for the most part, there's really not anything to do as far as adding fields to your solution. There's no specific naming that there needs to be; you can have them named whatever you want. You know if you create a new FileMaker table in FileMaker 17 or later it's going to have all of these things out of the box.


So you know this was something that we really tried hard to do in mirror sync that does not make you add fields. So make sure you have those fields to create a blank layout. Now we talk about the spoke database, and here I've got the spoke as b, which is east, the East Coast, Northern Virginia and I'll get to the other spokes in just a second. But you can see this list is the same down here, but you can see Dynamodb is also a choice now, because dynamodb can't be a hub, it can only be a spoke, and that has to do with the fact that it's a no SQL database that has no schema. So we've told it about our database on the East Coast. So now I click next and then I think I'll get a screen. Just like the last one telling me


Actually, Oh there is a screen that would normally pop up asking you to copy and paste a few items. I've already done those copy and paste operations, so I'm going to skip them. There is basically one table for you to copy and paste. There's one script folder for you to copy and paste and there's one layout where you just select all copies and go to another layout paste. That is the entire process of what you do as far as dropping mirror sync stuff in so that's pretty easy.


Now we get to the question at hand that Michael is asking about: what about multiple spokes in that kind of configuration. So you can see that we've got two spokes in this configuration. We'Ve got B and we've got C. B is the one we just configured C? Is Ireland and I can see that if I edit the spoke, I can see that 1701c, which is my Ireland's spoke and I'm going to add another one now. And this is new, this was you couldn't do this in mirror sync last week. If you still can't do it in mirror sync, I don't know that okay button is not very promising right now. There we go, okay, we're gonna write that down the okay button is not very promising. Nathan Schneider. Are you there?


You got ta write that down the okay button is not very promising. All right famous quotes that get saved by the people that are in the training here so. Nick Hunter's known for hurting them, hurting the laws, hurting mother nature right, which was always a good one. So yes, I'm going to temporarily turn off my screen share because you know, I don't want Richard to set this password. I don't want to reveal this password, so I'm going to continue on my microphone, but I'm going to stop sharing my screen for just a moment. We can play jeopardy music or something. Get that password, if I can find oh come on Jesse, where is that password? It's in the email that I sent you. Yeah tech support is on the job. Thank you, Jacob yeah, tomorrow's gonna be even better because we keep upping Annie every day on this and I don't know what Jesse's doing Friday. If he's bored on Friday, we might drag him back here too. So I'm taking it easy on Friday all right.


Well then we're going to talk about you and your product behind your back. You don't have to show up. That is fine, all right, so i've got it on my clipboard, I'm going to come back here. I'm going to show my screen. I think I'm going to show you where my screen button is, so I got my clipboard there. We go now we're here, all right database. Now this is something I'm still working on at the moment. You do need to type in your database name. Okay, so now I've told you about the Mumbai server. This is where the server is. This is the user and password for the database. This is the user and password for the admin console.


This is the name of the database that I want to sync. We are syncing with just identical fields of table names. mirror sync does have the capability to actually sync between totally different databases, which is cool, but I'm not going to demo it now. I've actually demoed before FileMaker Starting Point syncing, with the built-in contacts out of the box thing that comes with FileMaker, which is pretty wild. I need to figure out why this ok button takes so long. I'm going to put that on my notes here. All right, noted all right. So now I have three spokes. I've got my hub, plus these three spokes, and so here is where I pick which tables I want to sync. In previous versions of mirror sync, you would go down, you would check the boxes of all the tables that you wanted to sync. Starting in mirror sync 6, we now have this option here. This is sync any layout, starting with sync underscore so automatically find any layout that you name sync underscore something and assume that that layout needs to be synced and a really cool feature there, is It means that you can actually add new tables and new layouts, just by naming the layout that thing. You don't even need this if this is awesome I think, but you don't even need to come back into mirror sync when you add new tables, you just make sure you got your primary key.


Your modification timestamp your creation, timestamp makes a new layout named. Sync underscore and mirror sync will find it and it'll add it to the sync and include it. This is the most interesting screen in the configuration, so this is the only one that I really spend much time on. This is my email address, and so I will get an email anytime a failure occurs. If I want to get no emails ever, I can do that. If I want to get them on failures and warnings, I can do that if I want to get super detailed emails every time the sync runs. I can do that, so you can pick whatever you want.


Okay, I'm not gonna interrupt because we are getting questions about this screen. Instead of me answering them they're answering about “How do we control certain found sets” and things like that and whatever and so. I think i've had enough time to spend a couple minutes on that.


Well, I mean listen like we don't really have a heart stop here, it's you know. People will eject if they get tired of you and me, and that's fine, because you know okay i'll refund what they paid to get in here today. So that's fine, fair enough, so the answer to that particular question: how do you sync your certain records? Let me show that to you really quickly. I will go to the Northern California Server, I'm going to show you the mirror sync script, and so, if we look at the mirror sync script, this gets pasted in when you set up mirror sync and there's nothing. You have to change this script. Other than this section right here, this URL, so you copy, paste the whole script and then you customize line six. If you want to, you can come down to this section right, here, customization instructions and you can do a lot of things that will control how the sync runs. By far the thing that people do the most too is this find changes section. So find changes filters which records will be synced, so here's what it would look like if you want and this is commented out because these tables don't actually exist but I'll uncomment them temporarily. Just to show you what it looked like.


You say if the layout is equal to whatever sync underscore 0 5 contacts, then you enter the find mode, find whatever it is that you want to search for and then constrain the found set, and that's it that's all you need to do. Get account name which is a very common thing that people want to filter, by will return the account name of the user, doing the sync, because, when mirror sync kicks off that script with the data API, if, if Richard is the one syncing, it's going to use Richard's, username and password to kick off that script, so get account, name will return Richard, and then you can say find all the records where the current assigned person is Richard. You could do things like find all the records that have been created in the last 30 days and find all the records that are status Active and a really cool thing is that any records that don't meet that criteria, if there's records in there for Jesse, for instance, A they won't be synced and B they'll actually get deleted off of Richard's iPad if they don't match that.


So if the record status is active and Richard he goes, he does his job and then he's done with the job and he changes it to done, and then he clicks, sync that goes up to the server and it syncs to the server and the next time he hits sync, that record will no longer match that criteria and it will remove that record from his iPad because that doesn't match the filter criteria anymore on the server. So the iPad found set is always being updated with whatever find criteria you use, the FileMaker developer program Here and it's just using regular FileMaker scripting. We used to use SQL qualifiers to do that and stuff that was slow and clunky. So now we exclusively just use FileMaker level scripting to accomplish that. All right, people who are happy with these answers are really great. They love it. answered that answer that yeah. I think the questions are coming to us good, good, good, good job, Jesse keep going.


Okay, I'm gonna keep going, I'm not going to save anything, I'll probably screw something up. Okay! So back here I just ordinarily, I don't demo this, but I mentioned it so I wanted to bring it up. This is where you would put in if you wanted to do that cloud watch feature I was talking about. This is where you would do it in this advanced notification section you're, putting your access key, your secret key, the region where you want cloud watch to report from. And then you would say I want to know the duration, the number of failures that happen and any records that were deleted from the hub. And so by checking those boxes and filling in this AWS access key stuff, those three numeric values will be recorded to cloudwatch every time this runs and you can get a nice little dashboard of kind of seeing how long these things take on average seeing how many records are being inserted or deleted, and you can program it in to notify you, if it's not getting data from mirror sync, perhaps indicating that there's something wrong and the sync is stopped.


All right. I've got to turn these off. So that's that we've done this, the auto detect database keys are manual key setup. Mirror sync is really good in version 6 about finding your primary keys creation, time stamps and modification timestamps. If you want to customize those or just double check that they're being set correctly, you can change this to manual key setup and then mirror sync will prompt you for all of them. But I usually just leave it set on auto. I'm going to come back to this checkbox. Don't Let me leave the screen without showing that checkbox. This is your sync direction. This is a bi-directional sync, this is one way from the hub to the spokes.


So if you just wanted to push changes out to the spokes, this is one way from the spoke to the hub, which probably is not useful for a server to server sync. But it could be very useful if you're doing data collection in the field with phones or tablets. And you just want to, you know, collect the data and push it up to the server.This primary key matching here, you would pick a mirror sync manager if your primary keys are based on serial numbers. You would pick developer managed if they're based on UUIDs the fundamental under the hood difference between those is that with UUIDs and developer managed keys. We keep the primary keys the same between devices. So if your UUID is abcd on this database, then when we write it to the other database, it's still going to be abcd with mirror sync managed.


If your primary key is 5 and we go to write to the other database and there's already a primary key 5 on there. It might be 6 or it might be 600 or it might be whatever and mirror sync will manage that. It cares about going forward. In time any changes made to five on database one, should be made to record six on database two and that's kind of a deep topic that there's usually a lot of questions about that because, like I'm sure the questions are occurring right now. Wait, wait, wait, that's not well. Yeah, it doesn't work. No, no, and so this is what comes back to this conversation, real quick, so people like what the hell is the starting point.


I got people saying we want enterprise, we want the enterprise we want to prove and it's like. Okay, stop! So if you're learning the FileMaker platform, some of you are learning. Okay, you don't need the enterprise version of Starting Point. All we did with the enterprise version was change the primary keys to use UUID. So UUID is this 32 character, random, scrambled thing that is always random right and if you're learning, FileMaker and you're trying to see how relationships connect. If I try to teach you like 100 matches 100 over here or a 32 scrambled thing equals that as a trainer, that's a hard conversation to have.


And so starting point the basic one we would. You could use it over here, but the problem is, you could end up having to issue an invoice to someone like I give, like a sales guy does an invoice for five thousand dollars or someone and invoice is number one hundred, but after the sync, the Invoice number might change, right? So that's kind of an unsavory situation, and so, if you're going to really use sync, you need to think about using UUIDs. Jesse has been on my ass to make this version a Starting Point for over a year. I really have, and it's been a long time, it's been a long time and I finally saw the light and, and so but the thing is it's the my problem is, does it make for a hard training situation? So we really have the basic one which we know works great; it'll work on a single server up to several hundred people. Almost no one needs this, unless you're gonna seriously do an enterprise rollout with multiple servers and then by all means or you're a more senior developer, like you're in Alexi Folger, Dwayne Mossy, Keith Larochelle, all the guys from PCI. You know all the senior people that are out in the FileMaker community that they're already used to using UUID.


So that's fine, use that right, but it's just kind of like. Where are you at like, like we have for Jesse for those who kind of wonder about this, we have a number of people that come here who are doing basic FileMaker training, and so one of them is name's Bunny right, and so this is Bunny, so when we do Bunny training, this is like beginner training like this is a field there's a layout, there's a relationship, and so when we do basic training, we make sure it's Bunny basic, certified, right? and literally that's his name right, and so it's cool because we switch it's, but we switch, we switch hit between the advanced topics, the beginning topics, and so there really is kind of you know I had two people asked me for the enterprise version yesterday, and you know I don't know that they need it i'll be happy to give it to him.


No charge is free, but If you're going to do it, mirror sync definitely wants to use that version. I would definitely recommend the enterprise version if you're planning on using their sync. Yeah yeah those two, these two things go together like peanut and butter, or whatever bread or or like Rick and jo or Richard and Jesse right? There you go, which one of us is the peanut, which one is the butter, yeah just stop the conversation right there before it becomes unsafe for our work, [, Laughter, ]. All right! So when we get down to here, you have the choice of this default value is just sync everything to every table. We automatically skip calc summaries and globals, but we'll sync all of the other fields in the table. You have the choice if you would like to, which this probably doesn't make sense for a server to server sync, but let's say you're doing a really light mobile database that only has like a handful of fields.


In that case, you would add your handful of fields to that sync layout that we talked about creating, and you would switch this to say I'll sync only the fields in that layout. And then, instead of 100 fields, you would get the eight that that mobile user needs. So I'm going to leave it here. I'm going to talk more about field merging tomorrow when we get to conflict resolution and the same thing with this conflict thing. But basically the really short version which I'll go into more detail with. Is that if you pick this merge changes option, the mirror sync will merge the changes together. So if one user changes, somebody's email address and another user on the same record changes, their phone number mirror sync will merge those together. So you'll get one record that has the latest email and phone number merged and then conflict resolution.


The default value is the most recent change wins. So if a record can't be merged because maybe we both changed the email address on the same record, the mirror sync will by default assume that whichever user changed it last is the correct one. But I will talk about other options besides that, that's just the out of the box default. Oh and I just didn't show that checkbox. No, it wasn't your fault. I clicked the button too fast, yep so but in between here I'm gonna give Nathan Schneider is endorsing this. He says my experience with this new version of mirror sync has been great because if there are no changes in physical time or detecting, okay, your English either I can't read or your English just went off a cliff. I can tell you Nathan beats the hell at a conflict resolution. I would say half of my conflict resolution issues are from Nathan. Okay anyway, but yeah.


He highly endorses the mirror sync 6, because you rewrote this thing right. I mean listen. This interface. I recognize this interface. This interface hasn't changed much in five years, but you're saying that under the hood it is new, yeah. The field selection is new. This second row of buttons, because you didn't have the previous versions of mirror sync, always sync. The fields in the layout this is going to sync: all fields are new, but all the rest of this is yes, the same yeah on on the surface. But yes, it's, the script is completely rewritten under the hood for version six. Okay, this is the checkbox. I wanted to show the same settings for all tables. Did you? Oh? Okay? That is a bug. I need to fix that uh. I almost got away with it because I'm sorry we're gonna have to burn everyone's eyes. I'm gonna talk though she didn't see anything there's a bug. I'm gonna pull a Steve Jobs and throw my digital camera at the front right. Okay, I'm blocking the screen.


No one can see you if you want to fix it right. So what's supposed to happen here is that bugs happen, I'm not, I'm not fussed about it. I'll fix it. The point is that what's supposed to happen here is you're supposed to see a row for every single table that we're syncing and so basically, what it lets you do is pick a direction, primary key field, selection field, merging conflicts for each individual table. So if you want most of your tables to be bi-directional, but three of them to be one way and then one of them to be mirror, sync managed and one of them to only sync the fields in the layout and some of them resolve conflicts differently than others.


You can uncheck that box and you can set all the settings individually for each table separately. I know what happened. I cancelled this as I was going through it. I think that's actually true. So that's actually what I need to know to reproduce that bug. I'm gonna try and go a little faster because I don't want to waste too much time, but I think the reason that happened is because I hit cancel when I was going to the next screen and I don't normally test that way. I think that left it kind of in a half finished state. Well, I'm not blocking the screen right now. If you want me to put up a curtain or something you got ta, let me know [ Laughter, ], I've experienced enough bugs that I don't get too fussed about him anymore yeah. It was the cancel button.


So this is what it's supposed to look like, and you can see each of these tables. You set the direction, the primary keys, the field merging and the conflict resolution options independently. So now, when I click next, this step takes a little bit of time, because what's happening here is that mirror sync is going to all 20 or 30 tables or so and running a pretty involved script on each one of them to figure out. What is your primary key? What is your creation timestamp? What is your modification timestamp? Which fields are writable and which ones aren't? What are all the different field types? Do they have auto-entered serial numbers on them and it does all that by creating one or two temporary records and basically experimenting with them and setting different fields to see what happens to the other fields and seeing if validation errors occur, seeing which time stamps change and It does all that to basically kind of auto detect your modification timestamps and creation time stamps. All right, I do have a question. Alexi here is probably really mad at me.


I didn't because of all the stuff that goes on here, because I'm playing product production. It's like you know, a production engineer and also a talking head. So Alexia has a question and she tries to remind me - and I didn't see it so she says: do you recommend a db user account specifically for mirror sync question, mark full access question mark for the setup? Yes, for that, the first screen that we showed, where you pick the hub, username and password. Yes, however, and we didn't get this, I don't think we got this pop-up for the server to server sync. But if I had been doing a client to server sync, you would have seen a different radio button on the spoke selection screen and you have a choice there in that radio button selection screen of authenticate as the individual user or authenticate with the same credentials that you used for the hub.


So if you wanted to never have to prompt the users to enter their username and password, that's how you would do it. You would pick that radio button option and that would work the way Alexa is asking is that it would use the single username and password that you configured mirror sync with to also do the actual syncs I don't recommend it because then you can't do any sort of effective record level access stuff, you don't all you're modified by account names are going to show. Is that a shared account and you're not going to be able to do like any sort of validation on a per record basis or per user basis. You won't be able to use the get account name function if you want to filter records on a per user basis.


These are mostly concerns that apply to client to server syncs. If you're doing a server to server sync, then yes, I would, I would just say create a separate, username and password just for mirror syncand and do that, and you should do that anyway, because you should do that for the configuration process, because mirror sync needs to have a username password that it uses to do all the things it's doing right now. Like when it ran that script to find the primary keys. It did that using the account that you set up for it so, yes, I, I guess I kind of answered a little bit out of the order, create a separate mirror sync account and it's fine if it's full access or maybe even just data entry - Is only is also fine make sure you enable the FM rest extended privilege. I forgot to mention that, because you need that FM rest extended privilege in order to use the data API so make sure you have that turned on. I don't think that's turned on by default.


Yep I got hammered on that the other day, we've left it off on something, and we couldn't figure out why we couldn't make something where it only took like a whole day of us thinking that there was a bug in FileMaker and it was just stupid developers myself, mostly going oh extended, privilege, Extended privilege so because you expect that when you create a full access account that basically everything is enabled yeah, that's the thing yeah. It doesn't, in fact, when you create a full access account. Most of the stuff is off yeah, yeah, right.


So, but for server to server syncs. I think you can use that. I guess for servers to service things. You can use the same account that you create for the configuration process to also be the account that you synchronize with because you're not having you're not dealing with multiple different users. You don't need to filter things by user and that kind of stuff. So this is the last screen in the configuration. This is new in mirror sync 6. If you have a multi-file solution, you can do this, you can select additional databases and it will go, and these servers only have this solution hosted on them.


So this is the only thing that shows up, but if you have a multi-file solution, you can do that and you can check a box next to all the files that go with your solution and then, when that file either gets transferred to another server or downloaded. For an end user, it will zip that up and send a zip archive down with all the files in it. And then this doesn't really make sense yet because I haven't demoed server to server updates yet and that's going to be on the on the thing for either tomorrow or the day after, but mirror sync has this ability to push a new version from the hub to the spokes. And here's where you can control when that's allowed to happen by default. This is the choice, and so by default, mirror sync will only do it between 11pm and 3am and whatever time zone mirror sync is running in which, in this case on my computer is eastern time.


But for demo purposes, I said it to you anytime, but you can use that, so that you're not suddenly taking the server down in Ireland to replace that version with a new version from the hub in the middle of the day, while people are working on it. That is what that's for so I'm going to leave this set at any time and now we're finished cool!. And so this is important to read here, if mirror sync is, if mirror sync is installed on both the hub and spoke servers. That is the optional installation thing. I was talking about how you can just click the sync button to run the initial sync mirror. Sync will automatically copy the database from the hub to the spoke server. So let's try that. This is pushing updates and changes right?


This is the part that I was killing myself on last week, so it's working and it's cool. Well, I shouldn't say it's working until I actually show it working. I shouldn't get ahead of myself here, but here's the Mumbai server, the 1701D. All I've got in my there's my FM server sample. All I've done on that box is install FileMaker server or actually Jacob installed FileMaker server for me from RCC.


All I did in the box was install mirror sync. I didn't copy any files over to it. I didn't run any configuration stuff on it. I didn't change anything, I just installed mirror sync. So let's give this a shot now, so I'm going to click sync now, and this actually goes fairly quickly once it starts copying so spokes, B, C where's D. I did shoot! Oh, I don't want to waste everything. You know what happened when I canceled that and just went to fix it and ran through okay. Should I be all right, let's go fix it. I'll go fix it. So let me explain what happened. I did it, the first time I did it. I added that Mumbai server, but then I canceled out of that whole thing because I had messed it up and then and I was in a hurry to get back to that screen and I just rushed through everything and didn't add the Mumbai server again. So let me let me do that and someone's been changing a lot of records.


Uh. Sorry, I have an automatic part of the Starting Point. Over the last year, two we have had a mock data generator and uh. I've created about 100-200 records throughout the system. It creates simulated real records like a human, would type it, cool! Well, yeah. I've run it for weeks at a time and it generates, like you know, 15 gigs a day this week. That is what we're going to be playing with tomorrow right, but it's really slow. It's not an option. It literally goes to the field and it's like typing, like a person right. So it's right, so it's cool we're getting to see how this works yeah. So I don't know if it's uh. I haven't added that much to it. I think, there's, let me see. What's it doing, writing 106 records 1600 records.


That sounds about right, so yeah, but so this is the whole idea of it being offline. Then catching up. I guess right it's good, so here yeah now we can see what just happened. We wrote 24 records. That is the mock data channel, we'll see all these doubled because there's two spokes, so we wrote 24 insertions to one spoke 24 insertions to another spoke 91 insertions on notes, 91 assertions on notes, 37 contacts and then 165 invoices. You see, you think I'm sleeping over here. I'm actually helping you out, yeah. That was perfect. Just remember, just remember everyone! You got an amazing sale on this.


You want to make sure you buy it before what Sunday night or something? Yes Sunday, night. So I'm going to as quickly as I can add Mumbai to the sync and not cancel it this time and then show you guys how that automatic file distribution works and then I think we probably should wrap up because now we're quite over time. Yeah we're really were horrible people, we're bad people, 1701 d, and I still have that same thing on my clipboard. Let us hope I do. [ Music ] by the way, is a reminder to everyone that on Thursday, we're going to be giving you access to everyone. In fact we're going to ask as many people so no Jesse. You need to send a reminder out to everyone and we're going to give them access the launcher file, so they can open up the system and like edit records and play with it worldwide, and we can kind of see that'll be fun.


Yeah that'll be fun. That would be really cool. And again this is going to be our slowest process because it's you know again it's checking and finding all that meta data between the servers and it's doing it now not just two servers but three servers. Do we have any unanswered questions? Are we caught up on questions? Well, I think Alexi got mad on the left. Uh probably had a hard stop at two o'clock, a lot of people did hard stuff, but that's why we have a recording and this will get we'll cut it down. All the stupid stuff will get cut out. The part where you malfunction well actually probably won't because it's educational for people to learn that.


Tanya was asking about the data separation model. And how do you configure it? I mean all it is: is you're just configuring certain files to update in certain UI files to not update unless you want them so that data separation model? If we're talking about server to server syncs, I would just go ahead and copy both the interface file and the data file. In that section, in this screen right here, you would select additional databases and just check both the UI file and the data file. You might be able to make it work with just the interface file uh. You know, I know that's the whole premise behind the data separation model. Yeah, good luck with that baby yeah. I think you, I think you might run into problems, I'm not sure I haven't experimented with that.


Well, all I could tell you is that we don't use the separation model with the starting point and because it's designed with lead design from Nick Hunter, it is super high performance right without the mirror. Sync with mirror sync. Now it's enterprise grade material, so you take D. This is Jesse yeah. There we go there's the g now my spoke is showing B C and D. Now, I'm gonna run my sink okay and here's my spokes, B, C and D. Look. This is new, preparing to move the database over network from hub to spoke 1701d, so it sees that the database already exists in b and c, but it knows that it needs to move it from d. Now it made a copy of the database on the hub and is pushing it up to the spoke 61 percent of the way done and another thing which I. This is hard to demo because I already have the database on two of the servers, but this is a multi-threaded push, which means that if I, if this is the first time, I was running the sync and it didn't exist on any of these servers, it would Actually push the database to all three simultaneously; it doesn't push it to one and then push it to the other and then push to the other.


It pushes it to all three at the same time. So, whichever one is the slowest one is how long it will take, not all three of them combined together. So it pushed that up, sustains the database connection and Alexi is still here, which is awesome. I was afraid I missed, because she was trying to get attention. Richard but if you listen, it looks like nasa in here I'm surrounded by displays, and I missed her nice little blink question indicator this stuff you're, seeing right here setting up sync database. This is stuff that happens during that initial sync, so that only you'll only see that the first time.


So once you get this running, let me know and then I'm going to start my data generator again. Okay, it's almost done. Okay! Well then, it'll get to a point where it's like yeah. Now it just does nothing to sync right: it's all synced. Yeah it takes a little longer than normal on the first sync, but that's done that took 94 seconds for everything. So if I jump over to Mumbai now, here's our new there, it is so that I got pushed from Northern California. So basically, what happened is mirror sync running in Northern California went to using the FMs admin command line tool pause the database copied the database resumed the database and then streamed compressed the database, streamed it to mirror sync running on the Mumbai server mirror sync on the Mumbai server streamed. It is to disk in Mumbai, then decompressed. It then used FMs admin to host that file. So now it's up and running in Mumbai.


That is all stuff you could have done manually, but if you have mirror sync installed on all your spoke servers, that's all stuff that you can skip. Make sure you enable the sync. I don't know if you enabled it with a little check box. I did not turn on the auto sync: let's go ahead and turn that off then it's not going to do its job, so you need it going because it's my that my mock data generator is typing away here, adding records to the system, so all right. So anyway, yeah, so that's pretty cool! Well, we're gonna have to tomorrow we're gonna run through we're gonna build another server with more options about more conversation and then and we'll see how far we want to go and then we'll make sure we get everyone's questions answered. And then, like I said, just so you know I held Friday open as a reserve day. In the event it blew up if you're gonna, if you're gonna be out and gone, that's fine!


Jesse! We can talk about your stuff behind your back, which is totally good or if you want to send you're, one of your minions. The evil evil minions from 360works come and hang out with us. That is fine, but that where the idea is that we were trying to play with this letting people get into the databases and play and put records in there we're going to do that on Thursday, and so again many people can come in and add records and do this, and so there it goes it's already: it's actually syncing data. Now it's doing triple syncs right so yeah, it's think, you're exactly right. It's syncing each one, each record from the hub to those three different spokes. Okay and it looks like it and it's just going to run every five seconds right and so then I'm creating and it'll be so. This is actually more of a realistic scenario, because I got the mock data, generators and they're, like you know, someone's sitting there. You know beating on the keyboard, it doesn't create that many records, but it puts some appropriate dates. It puts, you know, pig Latin notes in there, like notes and pictures of people, and just really we made it, trying to be as human as possible.


So that's great. I love it so now it's yeah, it's just fun to watch yeah. It's actually good to see it happening in real time. So what is the, when I see that progress that says 351 out of like this thing here? So it is that, like it. It's slightly confusing because we don't know until we get to a particular table how many records there are. So we can't really show an overall progress bar of all the records we get to the first table and what we're like. Oh there's 36 records in here, so we show a progress bar. That is like 36 items long then we get to the next table and we're like oh there's 30 more items in here. So basically, our progress bar keeps getting longer and then we're kind of catching up to it right. Well, it just finished over here on this end, so I imagine it's going to catch up there at some point so yeah. So I mean, if you have people editing, I mean so but it seems like it's working okay here in terms of creating records. No, this is doing exactly what it's supposed to do. It is moving containers down by the way there are image containers in these things right, so there's a little bit of extra fatness in there right so yeah and it's pretty cool when you think about it. It's pulling that off of California and then doing a multi-threaded push to three different servers all around literally around the globe.


Yeah, you know with all that container data and keeping them all up to date with each other. This is the only time I've ever seen a legit enterprise deploy, I mean, like we're, multiple servers, we're really really humming. I mean you had this working on two servers back three or four years ago, but having it really like this and having it deployed and then being so easy to roll this stuff out with Amazon. You know you have your IT experts, like Jacob Taylor, comes in there and just you know you got a new server and boom I mean we could have servers in every continent. In half an hour an hour it'd be lickety. Yeah, yeah all right. I think the issue Mike Scott was asking was okay, they okay. So this is a conversation going over here, Mr. Scott, if you choose a duplicate of an existing config, does it create a new UUID for that config with his? That is an interesting question. Uh, yes, it does. It is okay, I have not that hasn't changed since five, so I had to think about it for a second. But yes, it does yeah, okay and then let's see uh. I already had the feeling that it was. I bought uh.


Oh yeah, someone already said they have the feeling that this is hot. I think that's hot and it's worth every cent thanks to Jesse. I just put it in real plain English for everyone. So we understand I mean this stuff is worth this. Listen. If you have to replicate servers around the world and you want it to work well, you have to use this. There is a that'll roll, your own. How long I mean Jesse, I mean. I know you don't want to say, but I would guess you probably in mirror sync engineering time you have probably well over a million dollars of engineering into this product. I would if I had to. I don't have any numbers in front of me, but if I had to just go by my gut I would say I have somewhere between 10 and 15 000 hours into this yeah and figure out whatever hourly rate yeah. So that's kind of like the starting point: we're over a million bucks in terms of revenue, because we've had to rewrite it a number of times, and this is infinitely more sophisticated. So for and ours is free, and this is practically for what you're getting is free right. So as far as I'm concerned, it's basically free. Can I configure multiple spokes in a config now if they are SQL server?


Yes, yes, uh! Yes, you can have multiple. The only limitation really with multiple spokes is that they all have to be of the same type. So you could sync. For instance, you could sync an oracle database with six FileMaker servers. You could sync one FileMaker server with six mySQL databases. You could sync one FileMaker server with three FileMaker servers. The main issue is that, if you wanted to sync one FileMaker server with say one oracle database, one mySQL database and one FileMaker database, you could do that too, but you would need to do that by creating three different configurations. Price wise, it winds up being the exact same. It's just that from a configuration standpoint, you would okay a different configuration for each one, all right. So let's talk about this. If you're gonna set this up for four servers around the globe, what are we talking about? Price ways here, how much is this going to cost FileMaker to FileMaker is 1600 without the discount without the discount and that's per pair of servers. So in this case it's four servers, but it's really three pairs, so it'll be 1600 times three. So this configuration that we're doing right now with four with a hub, would be 4 800 and then with the discount applied to that okay.


Well, okay, I can tell you five thousand dollars off. I don't know what Alexi Folger charges for her time, maybe she's. I mean she's worth every penny, I'm sure but uh. How much of this could Alexi build for five thousand dollars? Pretty much, not much. That is probably yeah! That is yeah! That is a lot going on yeah yeah! I mean it's a big product, I mean, and it's really frankly the only way to get the enterprise. Well, I mean we're gonna pick. It's up tomorrow we're basically at 90 minutes here, we'll cut, we'll edit, cut it down, but there's not that much fluff in there honestly. It can be really fun, yeah, really fun. People are saying they were saying they read the manual last night, but they were confused and then the demo cleared up so we're going to do it tomorrow, we're going to go through the config, but we're going to do it with Australia, we're adding Australia and then What we're going to do is we're going to invite to people probably on Thursday to come in and just everyone get in and have fun with the file save for work data. We really appreciate that uh.


Do we need to edit the okay so some of the questions that are going to come up now we're going to save them for tomorrow, so Tanya? If you can bring that question tomorrow, would be really great Scott uh. I think we answered if we didn't get your question. Please bring it tomorrow, if you want to pre-position a question with me in advance, shoot me an email to support at rcconsulting and just say hey for Richard with Jesse right. And that way we make sure we pick that up in the conversation so, yeah Lexi's still there. So thank you, everyone for coming and hanging out. I appreciate it. We will pick it up tomorrow and so we're day two complete. Three tomorrow, jessie final final, words of wisdom for us? Just thanks. Everybody thanks for your encouragement last week, thanks for taking the time to tune in, thanks for all your questions. It really makes it a lot more fun, okay, and I am going to once again do the quickie promotion for Jesse here in the mirror.


Sync deals. So if you want to save money, I mean it's already: listen, five grand for what you're getting is already basically free. I hate to tell you that, but if you listen, if you're rolling out to the enterprise and you can't afford five grand your enterprise is going out of business, just leave the company they're out of business they're gone right? If you can't afford five grand, because I guarantee these servers that we're running on right now, these are high-end Amazon servers. This demo is costing me on a per day basis, just to give this to you folks, about 200 bucks a day 300 bucks a day in servers, never and yeah.


So right, that's just the demo, never mind if I had to run this all month, so cool all right. These are super high-end servers. These are much much bigger than what I think most people would normally run. These are like 16 CPUs, and I mean they're crazy well, but the idea is that if we have to put two or three hundred people on each server, I'm okay with that, I'm totally good with that right? I didn't want everybody to think that it was going to cost them 200 a day to run FileMaker to run multiple FileMaker servers, well, yeah. Exactly so I mean yeah this fight. If you have five people or ten people, then this is a fun conversation but you're not the enterprise right? Once again I mean how do you, how many of you people actually and I mean you people, but I'm being nice, I mean Alexi's doing some work. She is all over the place, I know she even does. I mean she says, just works, it's still at you know apple. I mean she rolls out a solution to Apple.


She needs this. It has to go to all the Geo. She probably needs six or seven servers around the world and Apple should write a check for it, because it'd be like that. It's an easy one. But if you're like my company with 30, guys or gals and guys or whatever and we're across mostly North America, then maybe in the East and West Coast, if I was bored but most of the time, we just use one server right. So I do notice a significant difference. For me on the speed, when I connect into the Virginia server versus the Northern California server, I can really feel the difference. I'm in Georgia, right so for me, it's a much shorter trip to Virginia than television. We have whole conversations on the latencies right, so the latency speed is I you know if you're going to be around. If you happen to be around when we're off time, we should have the conversation, maybe on Thursday, about latency. It's important because Claris officially says if you're using their products, you need to have a latency of less than 150


That is officially in their paperwork, so I was unaware of that until I stumbled across the, in the documentation randomly the other day, and I was like wow okay and you can't get. You cannot get from Australia to the United States, basically less than 200.. It averages about because the people here are watching Australia and they were getting consistently like 195 to about 220 and that's just too slow. So, you really need a local server and if you're working with people in the United States, you have to use this stuff. So that's the enterprise. So if you're, five or ten people and then your budget, I understand but if you have basically, if you're the enterprise you're serving over a thousand people worldwide, pretty easily probably then what's it gonna cost for servers for those People right so yeah. It's just a relevant adjustable size organization. Right? So, I mean because if Apple squeals about five thousand dollars for worldwide servers, yeah right right all right, everyone gets your special deal. We will see you tomorrow at 1 o'clock.


Thank you guys. Thank you. Richard bye.

Transcript

Day 3 - FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum

Whoa! I'm on the wrong side. I have to flip myself over. One, two, three go to the other side and flip right on Richard Carlton


Welcome to FMtraining.tv where we create, and my team creates, we create awesome training videos here every day at one o'clock on demand videos that are part of our video courses. But once again, the one o'clock live stream. So it's a little bit more free-flowing with questions and answers from people like yourself. I want to welcome Jesse Barnum who's gonna be here. We'll get to him briefly here in a second. He's our guest speaker today. He's been refactoring the demo today so I wanted to make sure that it was going to work well for us. And I think we're in great shape, I want to welcome TK55678 obviously Robert from Texas, FM Bob spector 207, we got Carol, we got one brother men, we got Dave on,e Dave two Gadi, Ken, Bunny, Nick, Nick lean, Nick super Lean Nick, Jacob Taylor of course, always on hot standby.


Here’s an awesome guy, Scott Taylor. Man we got a lot of people here, right? And a couple people from 360 work as well. So real quick, welcome to day three of FileMaker and the Enterprise. What is FileMaker in the Enterprise? We're going to cover that here, just shortly but the enterprise is deploying FileMaker in a very large scalable way beyond several hundred people. We're talking beyond four or five hundred people, we're talking big groups of people. FileMaker will do it. In order to make it work you need a little bit of help, a helping hand from some third parties. In the case of this demo it's RCC, our product, our CRM product which is free as well as Jesse Barnum's mirror sync product from 360works.


So this is our guest speaker here today. I'm going to run briefly through our slideshow if I can make it work. There we go, so the broadcast today is brought to you by fmtraning.tv where we create great on-demand FileMaker training at an affordable low price. Visit FMtraining.tv for great deals now, additionally at FMtraining.tv you can see our live schedule which is what you see right over here if you press the live button you can see the upcoming six days of broadcast. We generally don't broadcast on Saturdays and Sundays. Although that does randomly happen if we have a lot to say, right? Or if we have some really amazing content. But generally, Monday through Friday at this time slot, we have Jesse Barnum today, tomorrow and also surprisingly enough. He is, I told him that we were going to talk about mirror sync. Basically really an open question answer session on Friday and that he didn't have to be here and then when people ask hard questions. I would just make it up right about you know mirror sync right?


Because it's really his product and I'm happy just to know you can make up lies and tell fairy tales about the product. if he's not here then he decided that maybe it was better if he showed up on Friday. So that's awesome! We're welcoming him back for one extra day. We are streaming live in 1080 to YouTube, Twitch and Discord. Once again we are broadcasting it at 1080 resolution. And then it is recorded and during the day or two that comes after the immediate recording, we kind of clean it up a little bit and then those are the videos that you see. So if you're looking for the first day it's already on YouTube right now. If you go to YouTube and you type in FileMaker Training one word, you'll find our channel. At the bottom of the channel you'll see day one day two is being edited right now and then we are currently on day three at the moment.


I do get emails from people in the middle of broadcast going where's the recording at and I'm like dude we're still making the recording. It's still happening, we haven't released it yet. I do get those, it's kind of funny, so if you go to FMtraining.tv and you want to help us, support this channel because it's not free. Just the cost of this week's worth of demos is, just in licensing fees with Amazon about a thousand bucks, because we legitimately set up high performance servers that can handle. We could right now deploy this CRM pretty easily to about 3 000 people in real time pretty easily. And so we're going to kind of be showing a little bit more of that today and then tomorrow is where we invite everyone in and you can come in and play with the data, okay? And you can add a record in Australia and it will show up in California or in

Europe or in India.


It's just awesome! So, if you want to come to our website and buy one of the bundles, this is how you support the channel. We have the FileMaker Training with the special version of the CRM for basically 300 bucks and then if you're looking for the video only version you already have FileMaker, you don't need the CRM you just want our video training or our on-demand training you can get it for a lower price right there. So once again, FMtraining.tv and then hit the bundles button. Additionally, we're heading towards devcon so it's time for our Double Double Deal right? So like you go to an in-n-out burger and you say you want an animal style or whatever you want to get your hamburger, that way you're going to go to our website https://bit.ly/fmdouble and I can put that link in there.


This allows you to get the two of those bundles for much cheaper like 349 bucks. So instead of one of them being 299 you can get two of them for 350. So it's pretty good. Now, not to be outdone by anything that's happening here, Jesse, who is the captain of the starship today, because we are doing the enterprise has a special deal. I want to encourage everyone to go to this, this is 15 percent off the mirror sync software. This is the stuff that makes syncing possible. If you need to sync offline with FileMaker pro, right? You need to sync offline with a laptop or on an iPad or on an iPhone or instead of syncing between the server and a client, you actually sync between servers which is kind of what we're talking about right? This is the same product. It does both pretty awesome. So, I want to encourage everyone to let me know about that and then Jesse if you could, before I get to you real quick, can you do me a favor and find that Claris community idea you had? Where you were requesting a supported upvote because Scott Henderson reminded me of this and we should let everyone know what the link is, so they can hunt that down and help us out. Because right now, if you want to deploy this product you need to use FileMaker server. You can't use FileMaker cloud 2, because there's kind of a critical bug in it and Claris may or may not take that bug seriously. Claris only fixes bugs that people complain about, if you don't complain about it they won't fix it and so you have to complain and literally what they do.


And I've seen this and it makes perfect sense, I do the same thing if you have 50 bugs and you're going to fix half of them then you total up the complaints on each one and you do a little sub-summary report and the 25 most complained about bugs get fixed. And so, we want to make sure that this bug is up on the list pretty high, so they will take it seriously because we want to be able to do synchronization even if people are using cloud 2. So that's really a great thing. Hopefully, we can find that and go down that road so the next slide is kind of a new one. I'm gonna bring this down right now and I'm gonna click here. I want you folks to watch this. This is kind of what we're talking about here. So this is the world, Okay, if you can see all this, this is where in different geographical regions, we have servers that are communicating and running and then if one server drops off, the other ones can keep going and the people that were down here accessing that server can connect to the next closest server and still be running, right?


So that's the idea of this world wide geographic replication. Once the server comes back up online it automatically reattaches and is updated with synchronization. So that's what we're talking about. Pretty awesome stuff. There's a question about, we'll save it towards the end there is a question. Well, yeah! I'm just going to save it towards the end. I think this is one of the top F. I recognize this name J few, right? He's an ets guy. All right, Jesse are you there? Are you ready to? I am ready for the url that I sent you. I will find it and send it out when you start talking to everyone. Okay? What I want to do, what I want to do up front is you have a question already from people and the question is, I think this is from JFU right on ets if I had to guess and the name here is really close, he says sorry this off top, off topic. But can you quickly talk more about what mirror sync needs in order to connect to an SQL database for example, if I want to connect a Microsoft SQL database with a FileMaker database what privileges and accounts do you need to connect to the SQL database, Is this done by ODBCI have found that DBAS and the enterprise can be very protective of their databases and don't like things connecting to it.


Okay! Well I will just verify the last sentence. Yeah DBAS in the world don't want anyone touching their database. So sometimes you have to get the CIO to put a gun to their head to get them to do it so. But if you want to talk about the SQL connect component, right? Yeah. So you're going to need access to that port you know through the firewall. In the case of Microsoft SQL server I believe it's 1433 port number not 100 positive. About that, so you'll need that port open for your IP address you will need a database level username and password. Now, how much access you need is entirely dependent on what you want to do. So if you want to set up a read-only sync where you're just pulling from that Microsoft SQL database and pushing to FileMaker, maybe you have Microsoft SQL set up as a read-only spoke. I'm sorry, read only hub FileMaker is like a writable spoke, then all you need is read-only access credentials for that database if you want to insert, if you want to do a bi-directional sync, then obviously you are going to need permissions to insert update and delete records.


You don't need permissions to do DDL database description language to modify the schema of the database. Although, mirror sync does have some cool features to create new schema from a FileMaker database so if let's and I know this is not actually your question but well if they weren't gonna over connect it then not caring at all that you're just gonna like to start changing your scheme. Yeah never mind this guy named Jesse Barnum who you've never heard of before. It's got this app which automatically on its own. Just start changing your schema right there is a really cool feature in mirror sync let's just say actually this might be a valid thing. Let's just say that you want to just create a separate Microsoft SQL database like not write to their real production database but sync with some other database that they can talk to mirror sync has a feature to create all the tables and fields in Microsoft SQL, Oracle or mysql from your FileMaker tables. So if you set FileMaker up as the hub mysql oracle or Microsoft SQL server as the spoke and you have a fresh empty database that the IT director you know just says we'll just let him play on this one database that's empty microsoft then mirror sync at the end of the configuration process


It'll generate a long SQL statement and you can hit execute sql and it creates all the tables and fields for you to match the FileMaker tables and fields. Now that's obviously not what you would do if you were talking to an existing live production database but it's very handy. If you're starting from scratch on the SQL side, all right. So hopefully that answers his question. And then there's a discussion someone is asking where is New Zealand because it's not a real country, I don't know, I did not say that it's like where is this at what's it doing here and and so New Zealand is like down so with this piece or it's around here it's around Australia somewhere, right?


So anyway, so we're going to put, we are going to be showing a server hopefully in Australia tomorrow. Hopefully Sydney is close enough for your speed for that, hopefully. Yeah so, oh and Lexi Folger is back oh my gosh yeah Lexi says I love the drop table feature, right bamo right. Oh yeah nevermind. Yeah, favorite, favorite, feature. Okay, so we're going to transfer command, so I'm going to be playing air traffic control. Everyone and I'm trying to watch for Alexi when she says, Oh by the way I had a question. So Jesse, why don't we transfer command to you? You're going to share your screen maybe, see if I can bring it up and tell us what we are doing today. So if you're seeing my screen right now, what you'll notice is the list of configurations is blank the last two days, when I've been showing this I've started with already configured FileMaker starting point and so what I wanted to do today was just to show you what it would look like if you were setting this up.


Maybe in your own solution because the enterprise edition of FileMaker starting point comes with mirror sync already set up. We've already done all of the copy and paste operations and added the tables and all that kind of stuff in the layouts. And so, if you're using the enterprise edition of FileMaker starting point, there's hardly anything to do to make it work with mirror sync. One important tip is that if you name your we've assumed it when we did our kind of pre-setup for FileMaker Starting Point. The name of the configuration would be FMSP, so if you name your configuration FMSP then it will save you one step of not having to rename the script in mirrors and in FileMaker because the script has the name of the configuration in it. So you can name it whatever you want but if you name it FMSP it's one less step. So I wanted to show today and Richard wanted me to show, what if it's what if you're dealing with some other solution that is your own custom solution that isn't already pre-set up for mirroring. What does that process look like? What is the configuration? You know, walk through? Yeah. The question is what if you're unfortunate enough not to be having a latest copy of FM starting point and you're stuck with some others getting there. We want you to be successful even if you choose that you don't want to use a starting point which is fine, that's fine I won't take offense it's okay so that's what I'm doing today. I've actually gone into my enterprise edition from the starting point and I've deleted the tables layouts and scripts that go with mirror sync. So, I could show you what it looks like if I was setting this up for the first time. I am cheating a tiny bit. There's one thing that I'm not deleting because it's just tedious to create a bunch of blank layouts. If I go into my managed layouts I have a whole bunch of layouts here and all of these are blank.


If I show you what they look like, they're very boring and they look like this. So this is just a layout what matters in this layout, what's important is the table that it's based on T19 tasks, so now mirror sync whenever it needs to do something on the tasks table, it will switch to this layout.It'll you know insert delete update do set field operations doesn't need to have fields on it. It just needs to have a context that it can operate from, so that it can know so because FileMaker scripts are all based on layouts. So I'm not going to bore you by creating 25 blank layouts so that part's already done, right? Here so with that said everything else is pretty much standard you know you've got if I look at my field definitions i'll just pick a random table here let's pick something with some less fields on it how about QBO terms.


So you can see we've got a creation timestamp, a modification timestamp, created by a modified primary key. All extremely standard stuff that probably every one of your solutions has these things. Then we've got our actual field term name and term ID. Richard could probably tell us what these fields mean. I don't actually know. Well that's the quickbook integration stuff right? if you want to play with the quickbooks integration stuff so, yeah. Okay and then there is one thing that we've done that is not truly sync specific you might want to do this on your own. Anyway it is helpful for mirror sync and i'll talk more later in the demo about why it's important but Jonathan from Richard Carlton consulting and I work together to add this field to every table and i'll talk more later about when it's necessary. But basically, what this field is, it is the one, the one field I happened to pick, the one table where that wasn't set correctly so basically.


If you wanted, this is just a regular FileMaker calc formula and I'm sure some of you can read this and immediately figure out what it does. But for those who are not as advanced. What this is basically doing is saying this modification timestamp field, we don't actually use it in the calc at all it's not used. We don't care what it is, the important thing is that the way a case statement works or actually any FileMaker function that references a field is that the FileMaker function will trigger anytime. Any one of the fields it references changes, so we don't care what the value is on modification timestamp but what we do care about is that any time the modification timestamp changes this calculation updates itself and it will update itself with whatever we put here which is get current host timestamp.


So what this will do is that, so i am in Eastern Time for me right now it's 4:21 pm. The server is on West Coast Time, so on the server it's 1:21 pm. And so I'll actually demo this right now so I can move Richard out of the way I'm in the way. Yeah. Sorry about that, and I am, by the way, connected remotely to the server from Atlanta to San francisco. So if it's a little bit laggy that's why so I'm going to what was that was the quickbooks terms table oh we're not even syncing that table I picked a picked one that's not one that we decided we didn't have to sync let me find another one.


Okay, let's do categories. So we've got our modification timestamp host. Let's make sure this one is not messed up. Wow, I'll need to make a note to myself because I might have missed something on where our model is. Yeah, that's fine keep going on that Jesse so for those of you who are not super ninja level developers, we spent an entire session with Nick Hunter banging on auto inner calculations and all the magic that can happen there. So if you're interested in that, maybe TK or something we can find the link for that but it's a live stream that we did and we tore that all apart. So yeah, so the auto enter calcs are kind of usefully universally useful. So are you good now? This one is good. Yes, we're gonna do email forms so angle forms have a date modified timestamp which is just your plain old timestamp that everybody's used to saying modification timestamp. And then we also have a modification timestamp host and that's this calculated value and if this date modified timestamp changes then we will insert the timestamp on the host on the server. So I will demonstrate that I didn't make any changes, so I can just cancel, so I'm going to go to the email forms layout there it is and I'm just going to temporarily drag these some fields out just so you can see what I'm doing here so here's my date modified timestamp which is back in May and then here's my modification timestamp host which is blank because no changes have been made. And I am just going to do something, I'm just going to stick over here, so this is the part I want you to notice the modified timestamp is 424 which is my time. The 124 is the server time and so and it's actually funny the server and I happen to be accurate to the second from each other. I was expecting this to be a few seconds off but I'm actually the exact same second as the server it doesn't matter if these fields are on the layout or not I'm just going to delete them so nobody thinks that they need to be on there


For some reason I just wanted to show you how that works and later when I'm running the initial sync, i'll have a minute or so of down time. And I'm going to explain more about whether you actually need to do that or not in your solution. So getting back, so let's go ahead and set up so that's before I start. Let's just recap what has actually been done in this solution. So far, every table has a primary key which is a UUID. In this enterprise edition, I've got my sync layouts which are all blank. I've got a modification timestamp, a creation timestamp and for this particular solution I went ahead and created a host modification timestamp as well. Other than that, this is just A you know probably very similar to everybody on this call kind of solution. So let's see what's involved in adding mirror sync integration to this and create a new configuration.


And I do want to talk about this for a second before I skim past it. So this first radio button is what you would pick if you wanted to do a client to server sync. If you wanted to distribute offline copies to people on iPads, phones, laptops and have them use FileMaker pro or go to sync with FileMaker server the setup process is identical between the two the main change is just whatever button you pick here at the beginning. So that's how that works. The second radio button which I don't often talk about, but it's quite fascinating. We actually have the capability of mirror sync to sync an offline ipad or iphone FileMaker go or pro offline file directly to a non-FileMaker database, so you could sync. You know 100 ipads to mysql for instance without FileMaker server at all in the mix, you do need FileMaker server just for configuring it because we need to be able to talk to the data API to get a list of all the tables and fields and things.


But for the actual synchronization process, FileMaker does not need to be running at all, and you can actually sync directly from FileMaker pro or go to any supported database that mirror sync works with redshift you know salesforce mysql oracle postgres anything like that. I'm going to focus on this one, syncing multiple FileMaker servers SQL databases or web API so these first two are client to server syncs and this third one is the server server sync. I can name it anything I want. I'm going to call it and I had mentioned earlier that it saves a step if you could name it FMSP. In this case it won't because I've already deleted everything in that file so it wouldn't be any more or less steps.


No matter what I named it in this case, hey Jesse, I do have A I'm going to interrupt just briefly so, yeah I missed this earlier Jake Shealy, I had to learn how to pronounce that name that asked the question doesn't or don't insert script steps require the field to be on the layout? So the insert field contents does require a field to be on the layout. If you're using that script step I prefer to use the set field script step. For most cases the set field does not require the field to be present on the layout so it's a good question. It's two different ways to accomplish a very similar thing. There are some cases where you might want to use the insert field but frankly I've forgotten them because I've never needed it. And I used to know what the cases were that you might use, but I pretty much always use set fields because it'll work whether the field is on the layout or not. Yeah, I think I try to stay away from the inserts unless you really need to use them because it's more sensitive to the context.


So, yeah and I'm going to briefly turn off my screen sharing just so I can grab that password. I'll need some music here, I'm starting humming, hey just fondo figure Despondo is in. Welcome desfondo and then Michael from Montreal and Brotterman from Arkansas, welcome, welcome! A bunch of people here, Top cats, here Scott Canes, here Scott Henderson's,wow! A whole bunch of people, all right! So what I've done now is I've told mirror sync my hub database. I picked the type over here and just to reiterate FileMaker server any JDBC database Microsoft SQL mysql or for my valid hub databases. I've told it the address of mirror sync and I've told it the address of the server in this case they happen to be one in the same mirror sync is running on the database server.


One thing you'll notice here, well okay I'm sorry! I'm getting off on a tangent. Let me finish my first point and then move if mirror sync was not installed on the hub box. Then I would pick this radio button, and now I can put in a different database server than mirror sync. So I think Mr Scott asked the question yesterday about should you install a mirror sync on the same box as a server or in a separate box? And I think 95 percent of the time, for most people, the same box is fine but if you've got a very high performance situation and you want to maximize the speed, it is faster to put mirror sync on its own box. And in that case, mirror sync's address would go here and FileMaker server address would go there. This choice right here, internal external addresses are the same or different? You would pick different, if you're running behind network address translation so you have a private set of IP addresses and then a public set of IP addresses you would put differently and then you could fill in different addresses for internal and external.

Then you fill in your database username with your database password.


Your FileMaker server username your FileMaker server password, we need the phone obviously we need the database username to talk to the database, find out what fields and tables it is. We need the FileMaker server admin credentials in order to automatically move the files around, open them, close them, transfer them from the pub to speak that kind of stuff. Then we choose our database on this screen. By the way this will not work if you're trying this yourself and this comes up empty. It's probably because you haven't enabled the FM rest extended privilege so if you get to the screen and it's empty, click this thing says my database is done in this list. And then we tell you here's just a screenshot of what it looks like to go to the FM rest thing and add it to your privilege set. Once you do that, will probably fix it and then when

you choose this, you'll see your database here and I had previously talked about, oh no I hadn't talked about the screen I forgot this screen ordinarily mirror sync doesn't even show us the screen because all of these steps are already done in FileMaker starting point enterprise edition.


I've deleted all the stuff so this screen is popping up once we've done all this the screen will get skipped if we were to edit this configuration but let's go ahead and do the stuff outlined in here step one copy the mirror sync table from the mirror sync support database into this database when you download mirror sync from the store from 360works there will be a FileMaker database included in it.And at the root level of that download will be filed called mirror sync support FMP12 and that's what it's referring to when it's saying copy and paste that. So I have my own copy of that database and I will open that up and work from that.


So here's the mirror sync support database. This is included with your download and so copy the mirror sync table from the mirror sync support database into the database. So I'm going to manage databases, I'm going to go to my mirror sync table and copy it now. I'm going to come over to starting point or and you would go to your database here and you would paste that so that's step one done oh I remember what I wanted to mention that I kind of got on a tangent before you'll notice that I'm a laptop I am not actually screen sharing to the server. And so this mirror sync admin utility can not have you do not have to rdp into the server where it's running you can download it when after the installation in your browser, it'll pop up with a button to download this config client. You can download it to your own computer on either windows or mac and then you can run this and you can do all the configuration on your own computer instead of having to rdp into the server.


So you'll see that a green check mark popped up here because I copied and pasted that so when we're done, we'll have green check marks. Down next to all these steps so step two copy the mirror sync six folder from the support database, paste it into your database file and then we'll do this tomorrow. Probably if you're creating an additional configuration for a database that already has mirror sync 6 configured, you don't need to copy and paste it; you can just duplicate the mirror sync 6 script inside the folder and then rename it. So I'm going to go to my support database, go to my script workspace and get my folder copy that comes back in the starting point. Paste it okay so that's done and when I jump back to here, I should get oh and then I need to rename the script rename the mirror sync 6, 6 script to mirror 6 FMSP we made that field editable so you can copy and paste it so you don't make a typo when you're renaming it.


So you go to the mirror 6. 6 script rename paste that and now when I go back to mirror sync I get my green check mark here. The next thing we get this exclamation point, you can always anytime you see these you can put your mouse over it and it'll tell you what's wrong, the sync url does not match the expected value please copy and paste the value exactly. So in your database, edit the emergency six script near the top of the script, find this script step set variable mirror sync url equal to blah blah blah copy that url copy this url and paste it into that spot. So that's line six on the script right here set variable nursing url so I'm just going to change this and save my change.


So now I got my green check mark there. Step four, copy the mirror sync layout from the mirror sync support database. Go to the existing mirror, single app and that's an important part go to the existing miracle app. Do not create a new layout because when we passed the mirror sync table FileMaker automatically created a layout for us. So we want to use that existing light that already exists. Delete everything on it including the header and the footer and then paste. You do not have to repeat this step later if you change the sync configuration. So let's go to our mirror sync layout go to layout mode, it will select all copy actually out jump over starting point now I will just say something here in flight here we've been doing a lot of add-on modules and so at some point, I think this process would be a lot simpler when Jesse did an add-on module for this. But it's still kind of a semi beta issue even though my engineers are starting to kind of get a handle on it.


It just makes things easier but in this case you'd still probably do some hand stroking of the code etc to make sure it really worked. Yeah! I'm excited about that add-on module thing and I have tried it and it's time. Yeah well it works really great with things that are not nearly as sophisticated as mirror sync. I mean mirror sync is literally like the warped reactor on a starship. It's like, okay! Yeah there's a lot to it, there's a lot to put it mildly. Yeah the script is is kind of funny, if you want to read through 49 pages of FileMaker script and the script is actually the tip of the iceberg most of the of the code is living on the the mirror application that you install on the server, so we've done that and now we've got our check mark


So we've completed the four steps. Okay, so if we have a question? We do have a question. from David asked the question, I kind of replied to it but I'm gonna just give you this question, you can respond to it David says, being machines and server same land that's why I guess he's saying there on the same one pointing to the external mirror sync ip impact on performance question mark so the external IP would be primarily relevant for mean okay so the performance impact that's entirely based on your router. The router is what you do, your network address translation. I don't think you'll notice it, but it's just a hardware thing in the router; some routers use network addresses faster than others. But I've never used a router that's so slow that I noticed the performance difference when using an internal versus external IP address. What you may very well notice is what you will definitely notice is accessing it over a wide area network versus a local area network.

You know if you have two servers in the same physical office or the same Amazon subnet, they will sync a lot faster than our example that we're doing which is from the West Coast California to Ireland or Mumbai or Sydney or the East Coast. Yeah, but so he's talking about a network address translation on the same network is what he's talking about, I guess. Okay, so that there's a feature that you want to look for in your router and the feature is called hairpin nat and hairpin that it's so cold because in a hairpin turn. You basically make a quick 180 degree turn. Yeah it's funny, I'm making these hand gestures while I'm talking and I'm realizing nobody can see my hand yet yeah I'm sorry about oh I can help you with that so i'll make some handshakes do some hand gestures for me Richard. Okay here we go stand by we're getting ready not the hand gestures.


You would normally use a hairpin curve in and and gesture. And so the idea is in routers that support hairpin mat, they will take an external IP address and instantly convert it back to an internal address so that from inside the network you can use either an internal or an external ip address. If your router does not support hairpin nat, then external addresses either will not work or they will work. But they will be very slow and maybe that is what the question is about. Maybe you've noticed that's very slow, if you have noticed that's very slow then either just use the internal address when you're inside the network and then it's not a problem or look at a different router that supports that hairpin feature and then that should fix it. Okay yeah perfect yeah! I misunderstood we were talking about network address translation on the same

network as opposed to because as soon as we start connecting, I mean, I misunderstood the question if you, if you understand if we go back to do this I'm going to move to this original diagram so you're not on the screen at the moment.


Jesse so we go back over this video real quick that I did initially. Where we were talking about the idea of that you have all these, I can move this other way but all these servers that are running here, right? Everything is remote but you could for the and Jesse to cover this day one you could put all these servers in the same data center. Yeah and that they just become this like replication backup kind of action that's going on and you could they could you know and so if one dies so the whole thing is running fast but they're in one data center in our diagram.


I have fewer people freaking out about it. Oh, it's offline for 30 minutes while we restart it. I have bigger problems with people saying this crap is too slow because I'm in Hong Kong and it's in the databases in Washington. It just takes too long and so that's why we kind of rigged this demo the way it is because this is the more these are the complaints I hear about I don't hear so much about because really, FileMaker server generally is pretty reliable if you get it set up and it's running well it won't even crash even once a year. When you start having some sort of bug you run into then you could have a problem you know once a week or something which would be a real bummer.


But yeah, so anyway that was understanding where the server lives relative to each other I think is part of this question for those of you who are more basic understanding this we're talking about servers together loving each other on the same rack in the same server closet or spread across the globe. Literally, so that's kind of the conversation so gloss through these optional steps here, okay? Hang on! I'm bringing you back. You're back on, so you've got this mirror script now which we pasted into the starting point. And here it is, you know mirror sync 6 FMSP for a server to server sync, you never need to call that script, mirror sync will call it for you but if this was a client to server sync. You might want to put a button on a layout somewhere that says sync and you would just attach it to this script. Mirror sync 6 FMSP and then you tell your users to click that button whenever you want to sync. They could come here and click this button but it would probably be more convenient for them if you put it on.


You know one of their layouts, you know like you might want to stick a sync button on this. It's coming yeah yeah, so you might want to stick a sync layout on this button or maybe on your dashboard would be a good spot. You know, maybe stick a sync button here. But yeah just make sure that your button calls this script mirror sync 6 and then whatever the name of the configuration is another optional step. If you want mirror sync 6 to automatically run a sync. The very first time the file is open, not every time the file is open but if you just want to make it so that the very first time they open the file it will sync it before they do anything. You can have your startup script called the mirror 6 on first open that will check and see if the file's been synced before or not. If it hasn't, it'll immediately kick in and sync and then final thing which we talked about yesterday if you want to limit the records so by default mirror sync is going to sync every record.


Sometimes that's appropriate, sometimes it's not if you would like to filter it which I would recommend if you have a large number of users and a large number of records. If you want to filter it then take a look at the lower section of that mirror sync 6 script and just to in case people will called yesterday or forgot where it is this is the mirror 666 script you scroll down and here's where you get to this customization instructions so just follow these different directions here for limiting which records get synced during the during the script or get synced. Yes get synced, you're good, you're good! I'm just zooming in and out here as you kind of motor around because it's kind of hard to read this sometimes on a stream.


Okay, so now it's telling you to create the sync layouts. This is the part that I was telling we kind of cheated. We already added those that are all of these blank layouts. Here so all of these layouts is this is the part that we would normally do at this part in the process like as like you saw they're very boring layouts they're they can be blank they just have to be associated with the right table occurrence the one time you would definitely want to add fields to these layouts is if you wanted to only sync certain fields.

If you want to sync all the fields which is probably what you want for a server to server replication, leave them blank. But if you're doing a client to server sync and you want to trim down version of it that only syncs you know 10 out of your 30 fields then put those 10 fields on the sync layout and on a future screen you can select an option to only sync those fields that's a good one all right good.


So now, we get to the spoke database. The spoke database is going to be a FileMaker server. It could be any of these and you'll notice that dynamodb is in this list. Dynamodb is a really fun, cool , high performance database that we talked about on a previous day. And it makes a really cool way to create a high volume web-based version of your FileMaker database. Of course mysql, my ms sql server oracle are all very good at that as well so in this case we're seeing a FileMaker server. I'm going to set it up with our Ireland server. Previous days we've been syncing with four servers today just to make the demo go faster because we're already at 45 minutes past the hour I'm only going to sync with two servers so our database server is 1701 C, I think it's Ireland and yeah I still have I'm gonna get my clipboard again. So I'm gonna, oh he's gonna go with my screen sharing.


Okay, there you go he's left to initiate random I know Joe Martin is on this call. Right now, why doesn't he get a clipboard manager because he's told me so many times you get a clipboard. Yeah my guys do that too. The problem is when you're busy being the boss, sometimes all the little niceties go by the wayside. I really should have a clipboard manager I'm just lazy I'm too lazy to be efficient too lazy to be efficient that's great right [Laughter] So I've configured all the same options except for my spoke server if I was doing multiple spokes if I wanted to do like the four servers or five servers like we were doing it here. This is the screen where I would do that. I'm not going to do it now but I would click add another spoke. And then I would put the address in each additional table selection. I talked about this yesterday so I'm going to skim over it pretty quickly. I'm going to pick the option to sync anything that starts with the word sync.


And now, it's checking all those tables to make sure that they're all valid. Yeah, yeah hang on. Let's ask the question, here is a layout needed for each table or each to it's just a table right? not the tv so each it's for each base table base table that's that word that is inconsistently used in the platform and she knows this for the last billion years it's been that way. Yes, base table. Yes, so then an email administrator an administrator email address is required for any server service syncs. We already talked about this, we already talked about advanced notifications. I think we've covered everything on this screen and so I'm going to just get past it. Well we haven't, we haven't just dealt with the conflicts yet like if we both edit Alexi at the same time. Let's do that when I'm going to leave these changes in these settings as they were but when we get to our live demo let's do a conflict and see how it works.


Yeah, I'd love to know how it works so we discussed this so I won't go into more detail. I'll just change this to any time so that we can do a server server update whenever we want. And that is the entire configuration so with a whole lot of talking and explanation involved. I think that took 10 minutes 15 minutes. We cheated a tiny bit because we already had our sync layout set up. Maybe that would have added another 10 minutes to the process. Yeah my point is that this is not a laborious, you know, week-long process to set this up. You should be able to add this to your own solution fairly quickly. In fact we do a thing at devcon where we tell people we're not going to do it this year because there is no doubt we'll come here.


But in previous devcons we've actually asked people to bring their solution with them like on a flash drive or a network share and we'll actually customize you'll we'll set up nursing for you on your solution like between sessions free of charge at devcon yeah so which is always awesome because then they have to buy it if they want it to work very long, there actually is a free version of mirror sync that does work. So mirror sync for free will support one offline client device syncing to the server, so you can everybody in this call who would like to download nursing for free install it on your FileMaker server run through the process that I just showed you. And then at the end of that process you'll be able to download a copy to FileMaker pro or go and do a full sync all right?


So I've got it, so you're not on the screen anymore. I've now gone to your website on my screen and we're looking for mirror sync for free because I know people love free nothing like the smell of free software in the morning. So how do we find this? So click the buy slash upgrade button on the mirror sync page. Buy upgrade, there we go I'm going to press that and then new to mirror sync get licensed. I got three options here, so I'm going to do it myself because I don't recall offhand what the buttons choices are, okay? Oh I can switch to your screen then that's fine. I don't have to but we just there we go all right go ahead you may proceed okay that's okay stop okay stop that is not what I how did you get to that go back okay oh sorry pricing by upgrade okay I think you hit the left one yeah the left one okay because mine did not look like right here I'm like okay.


And then, just if you want the free version don't do anything on this page. It will come with one configuration for free and it'll come with one device for zero dollars and you just proceed to checkout where this where you would pay any money is if you want more than one device. So if you had five devices you would add a device and you would say I want four devices total of five because the first one's free and they're eighty dollars each for that quantity. And then that's three hundred and twenty dollars for five devices. Is that an annual or is that one time or what does that work that's a one-time fee and then we have an optional maintenance plan at the end of the year. You can renew that maintenance for 25 of the purchase price each year. I highly recommend that everyone, I mean, I do too because you know sometimes people report a bug and will say oh that's fixed in the most recent version and their maintenance plan has lasted and then they need to go buy the maintenance plan to get that bug fixed.


Okay can I make another suggestion or a question here, so yeah. if I was rolling out like this big server enterprise thing and I was actually the guy really technical but you're going through this unless I had a written checklist. I could botch it and so is there a plan where we can buy the product and then like buy 10 hours of Jesse not your time but your team's like we get Joe Martin to help us. Absolutely and it's probably more like in the three to five hour range for most solutions just. Okay so three to five hours and so we could add that to the thing that would be awesome so for those of you who are doing really lightweight and you want to play with this or you're you know independently brilliant like Alexi and some of the folks here


Then you don't need that but someone like me if I'm in front of a customer and I don't want to look like a fool they're like how come it doesn't work yet. Oh, because I've been trying so might want to get a couple coaching hours 360 coaching there you go right on. So yeah, thank you and and thanks for bringing that up I always forget to mention that. Yeah and so what we're doing today is the server version and the server server version you would add instead of adding devices you would add configurations, so you would add a configuration and you would pick FileMaker server to FileMaker server all of our choices are on here you know you can see here's all the non-FileMaker server choices and the pricing is right here so it's 1600 for FileMaker server server it would be 1800 for a non-FileMaker server to non-FileMaker server and that's the same in either direction so that's 1800.

And then if you want an additional configuration for a server to go like if you had a second solution that's an additional 200, If you had, you know two different solutions you wanted to sync instead of one it would be an extra two hundred dollars for that. Okay so that's where you would do the server to server purchase and we do 30 day free trials of server servers. So if anybody wants to give it a shot and I actually recommend that you don't buy it up front I would recommend doing a 30-day trial for your benefit and ours because refunds are much bigger than just making sure that it works right for free.


And then you buy it, but I mean, yeah absolutely and then once again make sure you get the mains Alexi just said yeah don't be an idiot buy part two or part two by the by the maintenance right by definitely the maintenance and and and unless you're just like the super ninja level person get a little. And i'd buy the assistance with it because then you know it's gonna rock and kick ass and here's a more, here's even a more important thing, if there's a problem like Joe Martin is your coach there and he has a problem and there's some sort of bug guess what it'll be pretty much automatically elevated to top level and it'll get fixed right? That's yeah, we were I would take a lot of pride in how responsive we are to tech support tickets. I think I've talked to a lot of people that are on this channel and I think most of you have worked with us. And so, yeah we're very responsive to issues that come up, yeah. I mean if people want to know like, why do I like to do why do I talk to Jesse? Why do I do Jesse and the reason we do Jesse is not because Jesse's perfect, far from it right but the issue is that when we point out a bug to him right? It's like and he really goes and I go and it's like a warp drive and it's kind of personal. Yeah it's like oh I gotta get that fixed right away and so it's not that there's not a bug it just means that you know that the guy who really cares about it is gonna fix it. And it's him or his team because it's not just Jesse as one guy I mean you got what 15 12 15 people there whatever yeah yeah so yeah all right well there it is so here's what I'm going to do now so I've finished the configuration and I'm ready to sync and so I've got the admin console for ireland that's 1701c open here in the background if I look at California california's got the database open and hosted Ireland does not have that data but it has mirror sync installed on it.


And because it has mirror sync installed on it, That'll enables us to do a server transfer of the file so that's what I'm going to do right now, I'm going to click the sync now button and before I click it I want well i'll click it and then i'll talk through it so I'm going to click sync now. And we're going to establish a database connection and you'll see it creating a database copy for spoke preparing to move the database over network from hub to spoke to this spokes1701 C so it's pausing the database it's compressing it it's uploading it we can see our progress. We can actually see the database pop up in the admin console here before long we're going to see this change to blue as FileMaker server hosts it or as mirror sync hosts it for us and then the sync will actually start to run.


So now it's blue that the file's hosted and then before long the sync will actually start to kick in and run like a normal sync so here's what it's there. There we go settings database we'll kind of do this I mean doesn't this have to be on for the automatic thingy to go or no that's if you want to sync automatically every so often what I did is I just clicked the sync now button. Okay, so it's so it did it up sync is what it did yes okay, yes and it won't actually we recently made a change steve winter actually reported an issue where it kind of creates a problem if you have this auto sync enabled, we won't copy the database over in that case because what steve was running into is he was taking his databases down on the spoke for maintenance but he had his auto sync set to run every few seconds so every time he took his database down for maintenance we would push a new version to his server.


So we'll only push the version of the server when you manually click the sync now button, not when it's just okay that's the that's one of those moments where they say the road to hell is paid with good intentions and you end up in sync hell and it's like why did I take these offline. And why is it coming behind me and and loading them and putting them back in that's a that's a fun one that's that's a fun one I like that all right cool that the entire time was 60 seconds 62 seconds to copy that file over to Ireland host it sync it run it. And now everything after this point is just incremental syncs so if I click sync now it should be just a few seconds to see that nothing has changed. And so yeah this is fairly typical for transatlantic sync with this many tables is about four seconds i'll set this to every five seconds i'll turn on the auto sync and within a few seconds that'll kick in it'll start running every five seconds.


So now we are where we were yesterday and the day before I just wanted to show everybody the entire process from ground you know from the ground floor from step one so that you would know how to do it with your own solution and so this is how you would get it running with your own solution. Cool! Questions from people question question questions? Make sure you ask let's get to you mention Richard you brought a conflict resolution let's why don't we do a conflict right now. So we can see how that works yeah like conflict how would we do that so why don't you go on your FileMaker and i'll go on my FileMaker okay so i'll be I'm gonna go to Ireland yeah because I'm not even really sure how we'd go locally here so let me try that let me I'm in this I'm going to disconnect from cloud you're going to be 1701a I'm going to be 1701c.


Okay stand by, all right and then we're going to find Alexi can we promote her maybe she could be a vp at apple that would be nice that would be a nice jump for her let's see let's see see if like which department was she not even in here she wasn't here oh you know she's not in this database because you use the wrong database. Yeah, I went back to our kind of it's been de-elected alright. So what do you want to do just edit you oh you're the record five what do you want? I'm still opening mine, I'm slow because I'm going from Georgia to Ireland directly from his connections. All right well you call it so if you're looking on my screen right now we see yours in mind both. Yeah so you can see that this is Ireland so I'm going to go to contacts alright this is why we need this geographic distribution is so important you're seeing how bad it is to connect to a service far away and this is a this is a super fuel efficient database I mean big time right almost no calcs nothing so at least change my title I'm sure you'll come up with something creative.


And I will change the website address, okay so not quite the record yet I've locked it's locked right now, okay? Okay so go ahead and commit one two three commits. And now I'm gonna jump over here and so an update happened so let's jump back, I didn't pick up the title for me did it get oh you know what it's because I know why and i'll explain in just a minute let's make one more chance, why don't you change my department and I will change my email address let's see department of I guess we could call it this person no one no don't commit yeah I'm not committed I got rocked.


Although I've misspelled it you know there we go all right widow. Okay and now go ahead and commit it to the console. The reason that it didn't work the first time we did it, is because mirror sync can't merge changes on something a sales weasel. Sorry you need something creative mirror sync can't merge changes on a record that it's never seen before because we've never changed this record or inserted it since we just set this up with mirror sync for the first time mirror sync has never seen this record before so it's not able to merge that change but now let's create a new record, okay? Richard, why don't you go ahead and create a new record and fill in whatever you want and then I'll let you know what pops up from all right. Hang on here, I'm trying to go there we go oh Craig got Joe going here.

And there we go, so we go got that so I just got his title and this name is that all I need is that good for now yep you know I'm going to turn off the auto sync just so that we don't have to time it perfectly that I can just go and click the sync now button and we don't have to worry about. Okay, so I did the Joe Martin and it did commit so it should show up, yeah he's and so you've got you've done that I'm going to go now I don't see it yet and the reason is because I'm looking at Ireland and we turned off our auto sync. Okay, so I'm going to come back in and I'm going to sync now, run manual and that should show up for me manually yes. Yeah, there we go so I can see one insertion here and there's Joe's record there and so now mirror sync knows about this record because mirror sync is what put it here so now all of our field level merging will work so I'm going to i'll change joe's website and you change his title okay title we're going to make him a vp of snacks.


Okay let me know what scarily accurate Joe well we hung out at devcon a bunch of my folks were snack people I think he was too. Okay so I haven't run the sync yet I've changed the website address and you've changed the title correctly. Now I'm going to run the sync and what I'm expecting to happen when I run this is that it won't say this one updated or that one updated it'll say both updated so let's run the sync and see what happens here, okay and that's that's what we got so I can see your change and you can you see mine, yep looks good beautiful yeah and and what this status is showing us right here is that we did an update to both the hub and the spoke because we rewrote that changed record to both so what you're seeing.


Now is mirror sync's ability to merge changes to different fields in the same record which is the next question which solves most of the problems out there where we're going to give joe the vp or we both change his phone number on the same day or something right or whatever let's do it so you change now this is going to be in a certain order so you change his phone number first okay five five five one two one two okay and then you'll make commit yes commit all right and then I will now change his phone number oh wait a few seconds because this is where the clock is important because our default conflict resolution strategy is the most recent change wins. So I'm going to put that in there. I'm going to wait to commit just to make sure that the clocks are off by a few seconds. Mine is the one that's made last. It doesn't matter which one syncs last, it matters which one is actually modified last, so I've made that change.


And now I'm going to run the sync. Oh it did, you just blew my phone number out, okay now let's do something else this time I want to change it first and then you change it. So let's pick, let's pick category okay, I'm gonna pick a hot prospect, okay and then why don't you wait at least 10 seconds and then change it to something else? I commit right not when I start editing right so yeah so I can go in here and edit of course it didn't let me put that in there right and commit now okay now I'm gonna sync again and I'm expecting your change to take precedence and I think that these servers are probably all in utc time yep and that changed for me it went to engineering.


Yeah I think that these change servers are all in utc time but even if they like if the Ireland server was in ireland time and the California server was in California time then it wouldn't matter mirror sync takes that time zone difference into account when calculating which which record was modified more recently and so let me bring up remember, I said I was going to talk about that host modification timestamp way at the beginning of our call yep now's the time to talk about that because I am behind the Ireland server the Ireland server is four hours ahead of my time zone so if we were just so if we were just using a regular modification timestamp and let's pretend the Ireland server was in Ireland time like I said I think Amazon sets everything to utc time by default but just for the sake of the example let's pretend that it's in Ireland time so if I were to make my change right now.


Would see that the mod the modification timestamp for the change that I just made would be 5:05 pm because FileMaker is dumb about time zones FileMaker doesn't care or know about time zones it's just like hey the change minute's made at 505. You're like well 505 where and FileMaker is like what do you mean where it's 505. So when mirror sync goes mirror sync is going to say hey ireland server I see that it's nine o'clock your time and I just synced with you 10 minutes ago at 8:50 p. m show me all your changes since 8 50 p. m and then FileMaker will say I've got nothing I've got this one from somebody changed it at 555. But that was hours ago so then mirror sync is going to miss that change so you're saying that we we need to use the modification timestamp from the host and and ideally the hosts are synced together right with the host Amazon syncs the all the hosts all these servers using gmt or zulu time right.


Yeah so but what if you have servers that you're your own server like david angle decides he's gonna have his company set up five servers and they hate Amazon they're rolling their own boxes. So yeah and what matters is whether or not the user who's making the change is or is not in the same timezone as the FileMaker server's timezone. So if the FileMaker server time zone was in California and you make the change there everything is cool whether it's on Amazon or not but if if the server is in Atlanta and then you make a change then if you're not using that host modification timestamp that change will get skipped all right, okay? Well I do have a question here from Alexi so questions are now coming in fast and for you so we just cracked yeah I've pretty much gotten to the end of my demos.

Well, yeah and we got time it's not a crisis yet so Alexi says, how are fields with quote unique quote validation handled if a change to one record on one server makes it non-unique with a record on the other server makes it non-unique. I think they would have been but the comparison data she's saying that the comparison on one side passes the validation but when you push it the other side it doesn't pass anymore that's a really interesting education. Okay oh, so okay yeah so mirror sync is pretty smart about validation failures and record locking failures and things like that if you have a failure due to a validation whether it's like a 504 val unique validation or 507 or 509 validation mirror sync if it's a 505 if it's a 504 unique validation and it's on the primary key that's a special case where basically it seems like we're trying to create a duplicate record and mirror sync will change that from an insert operation to an update operation and update the record instead of creating a duplicate record if the unique validation is not on the primary key.

If it's on some other field like maybe it's a foreign key if you want to enforce a one-to-one join relationship then mirror sync will catch that error and it will report it back as a warning and if you and the in the remember how in that email administrator screen, there's a pull down menu to select what kind of emails you get.


I would recommend getting errors and warnings because it will then email the administrator and let the administrator know that record could not be synced. Mirror sync will not retry that again unless the record is changed again because it's not going to magically somehow work the next time we try it, what about a lock sync. If you say it's you add it but then I go back and edit a second time and you try to sync and I'm jammed up yeah Joe Martin's thing is it going to try that again does that come back let's try it yeah. That's like after that right now, I can see that being pretty common so I'm going to go into Joe Martin's record, Okay I'm going to change his status to active and I'm going to set an address for him. Okay but I am not going to commit the record, now you make a change to Joe's record and do a commit and do a commit yes. Okay and edit and commit all right done okay so I'm going to sync now and what I'm expecting to see is a warning here, that we couldn't write the record because it's locked and in use and here's what we get no changes were synced update operation for primary key blah blah blah could not be written because of an error 301 record is in use by another user this operation will be retried on the next sync.

So I can keep clicking sync now, as many times and mirror sync is smart enough to know the difference between a record lock thing which it will eventually get versus a validation thing which it won't eventually get. So no matter how many times I sync it's going to keep trying and after this next one what i'll do, is i'll go ahead and commit the record and then i'll do it oops. I didn't get a button, that's fine. Yeah I must have clicked A it, yeah that's fine i'll jump back to Joe Martin now around the sink and now what should happen is it should be treated as a conflict because we've both modified the same record and it should be resolved and written there we go it's been written to both and it merged those changes from yours in mind yeah you got the change right there so there was a I'm just gonna check here for questions.


So there's two questions here I'm gonna do with Mr Scott's first any special caveats for auto intercalator lookups in terms of this conversation so there we do special handling on them. But you shouldn't need to worry about it; mirror sync can detect which fields have auto enters and which ones don't and it orders the sync to make sure that the auto enters happen after the other fields. So let's say for instance that you had a foreign key field so nursing will always sync foreign keys and then regular fields and then auto enter fields and then calculations and the reason is because when you set a foreign key that could very well trigger some field to a default value. We want to make sure that we write that default value after the foreign key has run if we set the default if we set the custom value and then set the foreign key that would re-trigger the lookup and overwrite your custom value and it's the same thing for auto-entered calculations.


We make sure that the record gets written in the order that we write the fields in. We want to write that auto entered calc last so that if like if you have a field a and field b and c is equal to a plus b we want to first write a and let's say it's a one and then we'll write b and that's a two now c will get auto entered to three but if you customize it to five. Then we make sure that we write that field last so that it ends up with a five in it not a three in it okay and then along these lines Alexi goes yes for instance you're using an old school auto inner serial number which is how how you and I argued about this for years before this actually happens, so auto so if you're using serial numbers as so there's two ways to use serial numbers there's using them as a primary key and then there's using them as a user visible number you know work order number invoice number check number purchase order number.


Whatever you have and this could get long so, I'm going to try to give the short answer to this as far as a primary key mirror sync just does it you just pick the mirror sync managed option and it just magically works the only thing to be aware of is that the ids will be different on both databases. So, hopefully you're not using your primary key serial number as double duty as a work order number because that'll be really confusing when the work order numbers don't match the same numbers on the two different devices. What I would recommend in that case is having a separate primary key and then a separate work order number and then everything is good and fine.


yeah and I'm just going to jump in so that's what caused all these problems with starting point because part of the starting point was designed to be simple and a training solution so we would use the primary as a very simple primary key here. Cancel that and over and it would be visible and the primary key at the same time right? And so the enterprise version is the one where we've taken the primary key. It's a uuid and then we made this user visible field if you mix and match the primary key and the user visible field and you're doing mirror sync together, what ends up happening is that you end up having two invoices with the same number. That could be very a very likely outcome and you are being summoned by someone very seriously you're in high demand yeah I'm turning on my do not disturb here okay I actually have my do not disturb on but apparently certain people still ring through so I the reason I'm going into here I want to change

this to manual setup and I want to show you a screen that we've been skipping over in our configuration which is where you tell mirror sync about your primary keys your foreign keys your modification timestamps and and importantly right backs right backs are I feel like I shouldn't I feel like i'll wind up spending 10 minutes and going way over time. if I go too deep into right backs but the concept behind writebacks is that if you have like a serial number field that you want to be your work order number or purchase order number set that put that in your right back column and then what that will do is it will make it so that once that record is synced to the hub mirror sync will take the value from the hub.


For that check number or work order purchase order number and write it back to the spoke so that after that record is synced for the first time the spoke will then match the value that got created on the hub and explaining exactly how that work would probably take a little too long. Well that's fine we have other questions, here's what I wanted to show you this write back value so all these things notice that Jonathan created those all these are like ID note display ID contact display ID document display. So these are serial numbers that are then visible so that you can say oh it's contact number one two three four five you pick that as a right back value and then mirror neurosync will allow the hub to assign the next number and it will write that back to the spoke.


So that once they're synced they'll match all right so the the next questions are kind of somewhat well Joe was kind of jumping in here but I'm going to let you a tee off on both of these so from FM forums which I think is Delinsky he says what happens when the schema locking with with schema locking and a sync takes place. I mean, I think that and then also then the next question from swear bar swearing I don't know people I could try to append their names into a call sign I can't pronounce. It will also be synced so I think this gets back to the idea that you make a structural change and it just pushes the whole file up. So if you want to recover that again. So first question on the schema change if you're making a schema change and mirror sync tries to write to that record and it's not able to because it's in you can actually update records while the schema is being modified.


You cannot insert records while the scheme is being modified. So if mirror sync gets a change from the hub and it tries to insert it into the, I'm sorry, if mercy gets a change from the spoke and it tries to insert it into the hub and the scheme is being modified mirror sequel treat that just like the record is locked if you're editing it and it'll just keep trying and trying and trying. And eventually it'll get through. So there's no problem with modifying schema mirrors will catch that and retry on the second question mirror sync does not sync accounts. There is no way, there is no facility in FileMaker that I'm aware of to programmatically sync accounts without using a separate tool like the data migration tool or something there's no way within FileMaker to do that and so we're not able to sync yet things like layout changes script changes account changes value list entries you know anything that is modifying the structure of the database.


However, I will try to demo tomorrow if I can find time, possibly even Friday. I will try to demo a really cool feature that mirror sync has where rather than syncing those changes. Because we can't incrementally sync them, we can't modify the spoke file. We do have a very convenient way to just simply replace the spoke database with a new copy from the hub. Yeah and so that's how you would accomplish something. It's kind of a brute force method but it's so simply implemented. And I think either should this on Monday a little bit or something but going through it again is really important. But it's kind of a brute force method but it's implemented so simply that it's easy. I will ask the question though because Claris has got this new serialized XML. It's their new beta version of I don't is an account information in that serialized XML probably not passwords. But yeah the password would not be in there yeah but what about the account minus the password I don't yeah I don't know I've looked at the ddr quite a bit and I think that the ddr does have.


I think the ddr has the accounts I'm not positive about that and I have not studied the new XML format well enough to know the image yeah and the thing is it's not documented yes Delinsky says accounts are but he left the so like one of those implied pronouns but I don't know which pronoun it is our demand are present in the XML on the well on the new XML as opposed to the old ddr XML because remember there's two XMLs here there's the old one that base elements that we've had for a long time that base elements will read for example and we have by the way we have Nikkor coming next week for those of you want to talk about base elements we have him one day on the his base product and then one day on his free plug-in so we have two two acts of Nikkor but we have 5x of

of jessie so we're very happy with that so yeah so it's a good question where that's at so so tomorrow i'd love to just quickly demonstrate the kind of schema modification feature i'd like to show how mirror sync could automatically detect new layouts and tables and and then we'll just open it up maybe to just everybody start to log in and make their own changes do we want to make a launcher for them I guess we should make a launcher distribute that right yeah we'll need to make sure the firewalls are open and well I don't think we need a launcher because you know I mean it's the whole point of this with the dynamic dns is that it should just be a matter of adding a single dns entry to your host and then having it pop up, right.


But I mean some of the people here don't know how to do that so I'm trying to say I'm trying to get them my launcher to your that initial location right, okay! Yeah, and we need to walk through that a little bit because it's not clear to me how you jury rigged that, right? Because, when we go to your server we open this file and it does this magical in-flight redirect that is like I don't even know what you did. It was amazing. So I'm sure it's magical. I'd love to show it off. Yeah, it was a lot of work, okay. Well I mean nothing, take a victory lap and I listen I have no problem with you telling everyone how brilliant you are because I'm fine with that. I said if I'm the smartest guy in the room we are all screwed. So I want to be the person in here learning by the way Delinsky just says that on the new I'm assuming new x yeah new XML he says there's a strength meter of the password hash indicating how strong the password is.


So you can't tell what the password is but you can tell based on the length of the hash I guess how strong it is. So it'd be like a kind of indicator that you suck as a password person or you're provided a really good cryptic password. So the hash itself is the hash itself in there. I doubt it. It's probably even the strength meter of the password hash so whatever a strength meter of password hash is. So I'm guessing that's some sort of thing there. So, yeah! Plenty of time on Friday for questions, well we have two more days right? More questions but we're doing me in flight and probably Delinsky is gonna be gone. You know he'll give up on us because we're so boring. Cool!


Thank you guys! All right, well, cool! So tomorrow is to bring you and your best friend's mother's dog's birthday party to the party. We want as many people to log on from around the world so anyone from Australia knows they love FileMaker we're gonna have a launcher file at the beginning of the hour tomorrow. And we're going to work on getting it out to everyone so you can log in. We'll make changes and then as you make changes we'll be watching them flying across it'll be very cool! So yeah, great! And then people are saying thank you Jesse thank you thank you thank you a lot of thank you Jesse for doing a great job! And thank you guys for being on! Thanks for taking the time. All right, we'll catch you tomorrow at one o'clock at FMtraining.tv with Jesse Barnum and Richard Carlton.


Alright thanks! See you guys. Bye!

Transcript

Day 4 - FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum

Welcome everyone to another awesome day of FileMaker training, the FileMaker platform, a really cool development platform for building your own custom FileMaker applications. I'm Richard Carlton, creator of fmtraining.tv where we do live stream training every day at one o'clock here Pacific Time. We have people joining us from all over the world. It's very cool! We want to welcome everyone! And so, today's broadcast is day four of a very awesome, well it's day four of five days of awesomeness. It's a deep dive into syncing your FileMaker solution to an offline device or syncing it around the world to multiple servers so those servers can access the information worldwide at high speed. Really, that's the idea is taking FileMaker and deploying it, so if you have a team in Europe or a team in the US you want them to have fast FileMaker performance you need the stuff that we have in this webinar.


So doing a little bit of maintenance up front here I want to let everyone know that the daily live stream training is provided by or sponsored by fm training.tv. I'm the creator of the training team, there's about four or five video editors and we put together on-demand FileMaker video content every year for every release plus daily live streams. It's really awesome! And because people like you help purchase our bundles, it helps us pay for and afford these broadcasts. It's really great, so if you want to know more about the upcoming broadcast, you go to fmtraining.tv and you can press the live tab and we'll show you the upcoming schedule down at the bottom about the next six business days of what of the training that we have. And then cool! So then let me just keep running through the announcements here so we are broadcasting in high definition on 1080 to youtube, twitch and discord.


And we will be talking and so asI'm talking here and presenting or Jesse is talking presenting our guest speaker I'll be over you'll see me over here kind of typing and doing stuff over here. I'm actually communicating because there's three different chats going at once on this very interesting broadcast. If you want to help support these broadcasts, help support this training which is really free, nothing in the world is really free. Someone has to write a check to pay for it, that's me. If you want to help support what we're doing, definitely make sure you buy one of our training bundles. The training bundle right here which includes all the training plus a special version of our CRM FM Starting Point and that includes a full copy of FileMaker pro for mac or windows, right? So, FileMaker pro 19 and actually that's an error, right here as far as FileMaker pro advanced I just caught that we've been steadily removing all the advances everywhere in the world.


In fact, it says it right there twice, I have looked at this screen a hundred times since nineteen shift and I have never, maybe you folks caught it. You should say something to me because I am definitely not perfect. Now if you already have FileMaker pro on your mac or windows computer, then definitely check out our training here, once again you'll get on-demand training. It's much more organized. This is a little bit free-flowing ad hoc. We do have people here who get grumpy at me for taking questions and stuff. And so once again, this is not the same as on-demand training, this is kind of like if you have a speaker and an auditorium and they're taking questions, this is that kind of deal so that's very cool.


For devcon we're coming up to the FileMaker developer conference and so if you think that you might want this bundle right here this bundle right here is normally the single person bundle, we have a double double bundle which saves a ton of money for two people a ton of money it's a really a good deal. So it's the Claris devcon slash engage double double deal. It's like going to the burger place and saying I want a double double in and out burger right? If you want to check that out you can go to https://bit.ly/fmdouble will be the link that will get you there which is pretty good.


And then today's broadcast once again is by Jesse Barnum he's the CEO of 360works. Jesse makes mission critical software that if you want to deploy FileMaker to the enterprise, you really must use this software. I don't want to say you absolutely must use this software. There's probably five percent of you who could probably if that who could not even that I just say you can't build what he has done for what he's charging. The synchronization software which you're going to see is amazing. It's really inexpensive relative to what you're getting. And so I'm just going to say you have to have Jesse, right? And if you and I know people say well you can't say that it's like, hey this broadcast is not not being paid for by apple not being paid for by Claris. I could say whatever I want right? So, I say you need Jesse if you want to fight about it, we'll fight right Jesse. Are you there? Can I fight for you or is he gone? We lost Jesse. He's probably not, I was too busy laughing to find my unmute button. I know, I'm sorry about that yeah well people are like you don't really need Jesse screw, Jesse right no, you have to have Jesse must have Jesse! No Jesse no enterprise.


For you that's the way it is if you want to take FileMaker to the enterprise you must have the third-party software to make it work period. And you're like why is that well I'll show you in just a second but before we do Jesse does have a good deal on the software. He doesn't do this for free, he wants money for his hard work. I don't blame him so if you want 15 deal off I told him if you're going to come here and show this everyone here is going to want a deal all these people here going to want a deal I can see them line up I got TK, I got Bob, I got Scott, I got Robert from Texas, I got Joe from Cologne, wow point Richmond everyone's showing up, Brotherman from Arkansas, Michael gravel from Montreal. I got Delta Whiskey from Indonesia, which is always exciting. We got the course Top Cat Canberra, Dave one, Dave two, Gadi, Ken, Nate, Scott K.

And did I get everyone here? And these are only the people that I can actually see. There are literally for every one of you that talk here and we see here there's about eight to ten lurkers people who are stealthily lurking about right so let's talk about what we're doing today. What are we doing and why do you need Jesse so I'm gonna click over here, see if this will play. I want you to look at this, I'm gonna pause this as we go here in fact what I'm going to do is, I'm just going to close this. I'm going to pop this as a video right here, I want you, I want everyone to see this is really amazing stuff so this is what we are talking about in the enterprise. This is the latest version of this graphic. This is probably the complete one so the idea is that you're going to set up servers if all you need is like Europe and part of the United States.


Then you can set up two servers right? But if you have East Coast and West Coast, the United States, and Europe, and you've got India, and you've got Japan, you've got Australia. We can do all this Jesse does all this his software makes FileMaker work in this configuration. FileMaker without Jesse, won't do this. FileMaker by itself FileMaker server only does one. Only does one by itself. What we're doing is we're showing that it's going to synchronize this data so all of them are synchronizing together so if you make a change in one location, the change gets pushed to all the other locations. And you're like why are we doing all these servers? Well the reason we do all these servers is because people log on to the closest server and so as you can see here they would log on the closest one, and you're like well how do they know what the closest one is? Well you come to the right place.


We have an answer for all that. And the reason, why do we do it this way? Well, one is that we want people to be close to the server which gives us great performance right? That's one. Two, in the event of an unsavory accident right so you have a server that goes down or there's a problem or something else happens, those people who are affected by that can quit FileMaker and reopen it and they would be redirected to the closest server. So they can continue to access the solution, meanwhile you can call your IT folks and say hey please resurrect our server once it's up and running it auto resyncs and gets up to date. Then those people can come back in again. So this is really good stuff. This is so, when you see all the animations like this, this is normally the stuff that you get in our paid on-demand video courses. A lot more animated a lot there's no questions people doesn't people don't ask us questions because they're not there.


But this is the kind of stuff you get very good very good artwork. So there are people who are going to ask questions, we do have some lurkers lurking by from 360works. If you have a tech question we'll try to throw it out there to you. We do have an agenda for today, and one of the things we're going to do is we're going to give you the keys to the castle. We're going to give you a launcher file and I'm not quite ready for the launcher file yet, I'm getting it loaded up. But we're going to take the launcher file we're going to post it here so everyone can log in. And you're going to notice at the top of the computer as you log in it's going to redirect you to the closest FileMaker server. It's really cool and jessie's going to walk us through a bunch of this. So Jesse, are you there?


Are you ready to? You know, I'm ready to go and I've got quite a few bullet points on my kind of demo list I don't know if I'm going to get through all of them today, but I'm probably going to demo a little faster that I've been going in the last few days because I want to make sure that I hit as many of these bullet points as I can. First thing, I want to show here just like what Richard was talking about is the DNS feature and I mentioned this on day one. But I want to just show you guys something new so if you were here on day one, you saw that we had four servers. We have A which is California, B which is Virginia, C which is Ireland, D which is Mumbai.


Last night we added E, which is Sydney. So we are now operating in four different continents. And I want to show you what I did to get the domain name servers to add that Sydney server, so I'm using route 53 from Amazon and I won't go into how I got here because we did that on day one. But previously, I had four checks, now, I have five checks so I added this new health check. And when you add a health check with route 53, Amazon wants to know what we call this. I'm just going to call this fmsp5. What's the protocol I could pick either http or https. We're going to be talking to the data API on FileMaker server so that requires https then we're talking about our domain name. And I just realized that I made a title here that should have been E, so I'm glad we edited this. I'll fix it so that is the server that we're talking to since this is our fifth check. I guess I could have done check FMSPE and then it wouldn't have maybe I wouldn't have made that mistake but this is the server that we're gonna check.


This is the port that we're checking it on and this is the URL that we're checking. I'm checking to make sure by specifying this product info URL that's always on whenever the data API is on, so by calling this URL, I'll be able to make sure that A FileMaker server is running and B the data API is running. If the data API were to stop or the server were to die, then that check would start to fail and this would change to an unhealthy status. Now that I've got this health check set up now I can go over to my DNS setup and you know I'll delete the one that I added and I'm going to add it back in, just so everybody can see the steps here because this is a really cool feature that you can use not just for FileMaker, not just for replication this is an Amazon feature not again a FileMaker feature a 360works feature or embarrassing feature.


If you're ever creating a website or web application on Amazon, and you are distributing it across multiple servers in multiple regions, you'll need to know how to do this. So this is good to know even if you're not thinking about it for mirror sync. So I'm going to create a new record, set the hostname fmsp demo. You'll notice that it matches the ones that I already have set up. It's because everybody's going to type in the same host name to get to the server. I could do an A address and type in an IP address here, but rich already has servers set up with a certain domain name, so I'm going to pick cName instead. And cName basically means this isn't this name here fmsp demo is an alias for some other name. And I already have that on my clipboard right here, 1701E that's the Sydney server.


I like to set that this is the time to live, this is essentially how long that value is cached setting it to a long value means that clients will cache that value for a long time which reduces the traffic to Amazon setting it to a short value increases the traffic to Amazon and the cash time is much shorter. I like to set it really short that way if I need to make a change, I only need to wait one minute for that change to kick in down here, so this stuff up here is regular DNS stuff that you'll use Amazon for any time that you want to set up a DNS entry. If you're setting up a web server or FileMaker server, you should know how to do this stuff that I just showed you. Now, in the lower part, we get to the kind of deluxe stuff where we're getting to the different types of routing choices, so simple. Basically this always goes that I'm not going to talk about weighted failover or geo-location.


I'm going to talk about latency in this case. I want the shortest latency, Right? Yeah! Latency is saying this server and if I look at my other ones they all have a region assigned to them U.S East, U.S West AP South one which is Mumbai and EU West one which is Ireland. So this new one is in Sydney which is AP Southeast one. And then, I give it some name and the name should be different from all the other servers and so I'm just going to call it fmsp AP Southeast 1. It doesn't matter what I put here as long as it's not the same as anything else I've ever created. This last section is optional associated with health check. If I pick no, then Amazon will always route the queries to whatever the nearest server is, but if I pick yes and then I pick that new check that I added fmsp5 then it will route it to the nearest server.


If that server is not running then it will take it to the next closest place so use combining this latency DNS feature with the help of terrific redundancy and speed because it will take you to the nearest server unless the server's down and then take you to the next nearest server. And I hit create there and so now I've got my five entries back again they've all got a time to live of 60. So if I wanted to make a change to any of them it would only take a minute to make that change let me show you under the hood how this is actually working. I'm going to go to the terminal which is what I usually use for my DNS checks. I'm doing ns lookup which is a built-in command that just basically says do a DNS check and I'm looking for this name fms demo. 360works.com so I do that my server is the google server. The google server is talking to the Amazon server because that's where the 360works.com domain is hosted and then it's going to say this is the interesting line right here fms demo. 360works.com goes to and this is the cName part stands for canonical name. It goes to 1701 B. rccsupport.com b remembers the East coast. I'm in Atlanta, so I'm closest to the East coast server. If you were to do anything, if you want to try this on your own computer give it a shot and it's look up fmsdemo. 360works.com and you'll get either A,B, C, D or E depending on which region you're closest to. And then down here, is the actual IP address so when FileMaker goes to connect to this FileMaker, doesn't know that any of this magic is happening, at Amazon's end it just says, hey where is the server Amazon is going to reply back. It's kind of sneakily sticking in the closest one, and FileMaker doesn't know the difference.


FileMaker is just like okay, well here's the server. I'm going to go into detail since I added that Sydney server so everybody knows how that works. So that's I'm going to move on from there, I'll have some other points where I can stop for questions. But since i've got so much to get through, I want to show this next thing which you haven't seen yet, unless you saw Richard and I demo this two or three years ago. Okay. Is this the one where you're going to push the update? This is the one where I'm going to crush the server. I'm going to crash it on purpose. Okay, okay! When you get to the part we're going to push the update, we need to put a security credential in for these people to use, so we need to do that and then push that out because right now, they can't log in okay cool alright sounds good.


So I think that our security credentials that you and I set that days ago and it's already been pushed to all the servers, so we can do it with or without the update. Okay. Off the check though the so I've got this running every 10 seconds and I'm going to go into my server. Notice that the title tells me, I'm in Northern Virginia that's because it's closest one to me and I'm just going to create some records. I'll create an expenses thing because I have any creative ideas of what else to do and new motorcycles should definitely go on my expense report since the sync is running every so often in the background. If I were to look here I would see that this stuff should hopefully be getting pushed to all those different servers. So I'm making the change in Virginia, mirror-sync is going to pick that change up from Virginia and it's going to write it to the other servers.


And yeah! You can see right here zero three so it's writing those four expense records that I just created to the other four servers. So that is working! That's great! Now, so let's remember I've got five records here in my expenses table. Now, I'm going to do something really awful. Actually, it always kind of makes me happy for some reason. I don't know why I like doing this but I'm going to FMserver and I'm going to kill this process. This is not a nice gentle, hay when you're done stop this is you're dead, you're gone, okay? So that's like really bad don't ever do that to your server unless you're dealing with fake files like this or unless you're running mirror sync so that file that server is now dead. And I can prove it to you if I try to go here. Database server is not running when you stop the database or so. That almost certainly corrupted my file. Yeah. Take it to the bank. Yeah. That file is dead. I could try and open this file and I could try and do a consistency check on it. I have some files that take three hours to do consistency checks on for some of my larger clients.


So rather than do the consistency check, what I'm going to do is I'm going to go to last night's backup. And last night's backup and actually I'm going to stop the auto sync. This will actually all work with auto sync on but I want to stop it so that I can make sure that everybody sees what's happening. At the speed that I'm talking about it and not have it happen behind my back so I'm turning off the auto sync. I don't need this anymore. I've already killed it. I am going to trash this dead file of course if it was real.


I would move it to some damaged folder or something like that so I could have it just in case, but I know I don't really need it for this demo now. I'm going to my backup. This is my daily backup from the 22nd last night at 11 pm. So this last night's backup does not have the new records that I just added so I am going to put this into my live database folder. And then I am going to go back to the server admin console and I'm going to start my database server now. In reality, if my server was dead, I would definitely like rebooting the server and making sure that it's okay so that file is up and running. I needed to open it, but the server admin actually hadn't caught up to the fact that the file was dead and gone so it was just momentarily thinking that everything was fine and still showing the old open file.


So before you know that the sync is not finished yet, I'm going to close this file because I don't want the sync to run yet on this file. Oh you know what the reason the sync is taking so long, is because it's still trying to get FileMaker server to do something. And Oh, and I wanted to show you guys I wrote this down in my bullet points and I'm not referring to my bullet points. I wanted to show you guys that and I don't have time to go back and redo it.


But, if the server had crashed if I had come in here and did another DNS look up it actually within 90 seconds of the crash and server it would have come up saying canonical name is 1701A because that's my next closest server. And if I had tried to connect back in with a FileMaker pro client, it would have worked but my title bar would have said Northern California instead of Northern Virginia. And I'm sorry I skipped that, and I'm almost tempted to, you got to listen to Jesse. You're not unless you're gonna skip out on us tomorrow. We had plenty of time. We really do. I'm gonna cancel that sink and I'm gonna read, I'm gonna crash it again. Yeah, do it. Two offer double crashes, you're like no don't do this.


It's kind of like breaking a window, it's like you know you're not supposed to, all right? So that file is dead and if I reload here, it's really dead and just to make sure it's really dead will come into this live thing. I'm going to trash that file now. It might take up to 90 seconds before it goes away and the reason is because it takes about 30 seconds for that health check to run every 30 seconds. We can come over here and we can look at our health check and so the one I just killed was B which is two, so hasn't Amazon has not figured out yet that I've killed it. So why don't we? Why don't we pause for a minute and if there's any questions now is a good time to answer them while we're waiting for Amazon to kick in.


TK says, later people can log on to only using a web browser they need. Yeah, I don't, we're not trying to do web direct on this TK, I mean, I guess we could but how many? I mean how many fires do you want me to light on live tv? At one time I thought pro and go or easier demos besides if they're people here watching and they're not doing pro or go then I'm not sure they're entirely following us. I would assume that most everyone here has at least pro, but I would point out that everything I'm demoing would work that just like this with web direct as well

Yeah! You would put in that same URL in your browser and then Amazon would route you to the next closest server. So D vike says it didn't work for me, it kept returning to 1701 B, right? And that, and that's the East Coast server, right? So, I wonder if, I mean I'm not sure you know you know what I just realized, our health check actually is checking to see if the data API is running and the data API could potentially be running even though the database itself is not. So let me make sure. Yeah, that's what it is. I'm just going to simulate the server as completely dead. So I'm just going to turn off the data API.


And then you know within a little bit of time again 30 seconds or so Amazon should realize that's really dead. Yeah, you'd want to normally, we do a test to see if there's actually a file that comes back available or something like that in the list. Yeah, that would be a better way to check that the file is actually there. It's a little bit more complicated because of the way authentication works in the data API you need to make two requests. Oh yeah! That's right, you know you need to make a login request and then get that token. And then make a second request. Amazon health check can only make one request and it has to be a hard-coded request so in order to do that you would need to set up like a php script or javascript or some server side check maybe a lambda function or something that would do that check for you,


And then, return a success or fail. Let's see while I am waiting for this to go. Questions anyone? Questions, questions? Let me let me talk about what I'm going to demo next just so I can get through it a little bit quicker once this comes up. I am going to take that backup file, I'm going to post it live on FileMaker server B. It will not it's last night's backup so it's not going to have those new expense records that I just created six records in that expenses table. So then the question is what do we do about those missing records? And the answer is mirror sync, we will start mirror sync up and running again and then. Oh wait, wait wait wait wait. Just stop I just had a revelation so you're saying that this will take a backup and bring it up to date, so we actually, so normally people say oh I lost 15 minutes of work or if you're a real ding dong and you back up once a day I lost a day's worth of work of my last backup this is horrible this would restore as long as you have it synced to a second server. Yeah we'll pull it from the second server and push it back on the first.



Amazon has now figured out that the server is dead. Okay yeah! He just dv d-vikes d dykes dikes do you like I don't know whatever. Yeah yeah, whatever the Valkyrie yeah Duval yes whatever I mean I whatever. Yeah it works now, he says I see him every year at devcon. Notice that our name, our DNS switch has now kicked in. Now when we're requesting from Amazon fmsp.360 fmsp demo it's telling us 1701. So let's see what happens when I switch over to FileMaker and I go to the same host that I've been using, which is the fmsp demo. So you know this is just an SSL thing so, I say okay here fmsp use enterprise x3.

I can log in now. This is going to be a little slower for me because I'm going to the West Coast of the East Coast. But notice the title bar here, Northern California, any person having to do anything without anybody freaking out within about 90 seconds. That DNS change happens on Amazon. Amazon realizes it's down and it rounds me to the next closest server in my case that's Northern California but you know depending on my geography, if I was in I don't know new found land or something like that maybe it'd be faster to go to Ireland. So that is how that works now. What I and that actually the feature I'm just showing you right now is not specifically, technically speaking a mirror sync feature that is an Amazon feature now I'm going to show you where mirror sync plays into this. Okay, we know the server's down, so we called it guy ring ring ring blew up. He goes oh I'll take care of it and he goes over there and puts the backup back on he puts the backup back up no, we didn't yeah I don't remember did you move it?


I don't think, I didn't see you moving I didn't you're right I need to put that back up back in there. Okay, so there's last night's backup notice the modification time 11 pm last night, so let's go in and let's open that file up. So that file is now ready to go and now let's tell mirror sync to do something. So mirror sync is now going to see that it's in that so mirror sync keeps an internal timestamp of when it last synced with the server and it stores that on the server. Oh, you know what this isn't working because my data API is still off but this is instructional. No this is, I couldn't plan this better because what this is showing is that even with that server that mirror sync can't talk to it right now. But even with that server down mirror sync is still able to sync just fine with all the other servers.


So Mumbai, Ireland, Western California, you know Western U. S and Sydney are all still running, all still in sync with each other. Yeah, when I went to the data API our resident certified flight instructor Ken just told you to just beat you the punches. Yeah you got to turn the dappy back on. Thank you, I love it when people tell me that I actually sincerely do love it when people help me with my demos without being facetious. No, I'm being serious too. The problem is this like game they play with me, here when you're not here and they let me dig a deep hole and they could have stopped me like 30 minutes ago. And they let me keep going because they see how far it goes it's like a I think a drinking game Richard and the weeds do they say nothing or do they maybe just give you a little hint like huh maybe that won't work just to mess with you they could be tough on me they're hard people.


Yeah, so then you need to turn that on and now it's we're going to be happy now so I've turned the data API on and by the way while this is running, if I come back in here Amazon has already picked up that the data API is back on and is now routing traffic to 170 B that actually happened fashion. I thought I was expecting to have to check that a few times what's happening. Right now mirror sync is going into what I call recovery mode and mirror sync knows the last time that it synced with Eastern U. S. I don't know just say 4:30 pm so when mirror-sync goes to sync with it again as far as FileMaker is concerned the last time it synced with mirror sync was at 11 pm last night mirror sync knows that's not what I thought so it knows that there is some mismatch it knows that the file is talking to you right now

is not in the same state that it was in the last time that mirror sync talked to it so it switches to a different recovery mode.


In recovery mode it will not delete any records those expense records are missing from the Eastern East Eastern U.S but instead of mercy going. Hey these records are missing they must have been deleted, let me go delete them everywhere which is what it would normally do nerd sync will say, hey these records are missing but I'm in recovery mode so let me get them from another server and put them back. So it also does some extra deduplication checking to make sure that it's not creating any duplicate records during the sync which makes the sync run a little slower but that finished and it ran and I've got a bunch of insertions. I've got 11 insertions here in my audit log. There's four test records in my expenses table so let's go take a look now that the server's up.


I should just be able to close this, I'm not sure FileMaker caches my DNS or not let's see what happens. Honestly, I really don't know what's going to happen here. Yeah, which one are you in? Yeah which one will FileMaker put me in. Cool! FileMaker picked up the DNS change and put me into the Virginia server, so now I'm going to the one that was dead and if I go to expense what I said. Yeah so when I said okay so here I'm going to escape out of here I'm just going to make your window smaller for a second go back to my animated video here. So for those of you who might be pretty sharp here but when we blew up the server down here in this corner down here. You see this where we blew this server up in the bottom right the restoration here when we bring the server backup and we use a backup safe from yesterday or whenever.

It was an hour, a couple hours ago, then what happens is that mirror sync does a kind of a not a yeah but it's it's it's his commit rollback is this acid kind of stuff? Where it finds the records, it's more enterprise than it than I even it's more enterprise than I even thought I mean because it basically takes the other servers and it reconstructs where the hell it should be it's almost kind of like I mean I hate to say like a raid drive but almost like the idea if you drop the raid drive out and put it in the other drives kind of yeah combine forces to rebuild it right kind of thing so exactly like they're like a checksum, yeah. So it's kind of interesting how that works. That's pretty amazing stuff. So you know, even more enterprise than normal so that's pretty impressive and let me also point out that we've been demoing this kind of transcontinental servers all around the world.


But what I just showed you, I think probably everybody in this call can agree that this would be a really valuable feature even if all your users are located in one place, yeah,if you had mission critical say like you had a server that just couldn't go down and you're like screaming that right then you put two FileMaker servers side by side in the same data center they, you have groups of people using both they just divides them up. However, you want to divide them in terms of load or whatever and and then if one dies, then that then every then the company keeps going but then you get it buys you some time so your IT person can resurrect things right. So exactly, yeah and you get that scalability benefit of your users get split across two servers instead of one, so when both servers are running they're basically able to handle twice the load when one server goes down you've got all the load on one server but mirror sync will recover that server.


As soon as it comes back up, yeah so that is what I wanted to show there as far as the recovery from backup should be we should open the floodgates and pass out that launcher file. Well, we can, I am you know I was thinking about what we want to do this from a structural standpoint so everyone here so we give the file out then what we're going to do is probably kick everyone. You know in a couple hours or something and then we'll do it again tomorrow but I'm going to send out an invite to everyone Jesse and if you want to you know they can send them an invite and then we'll give them the revised password in the broadcast tomorrow we'll change the password but I want to see if we can we're up.


I don't think we're going to have more than 50 or 60 people here. Today I watched this but if we really put the word out there that we're trying to break FileMaker, I will have people show up, we'll turn on web direct too. We'll try to web direct just to light everything on fire and then that way we can address that so then there's a question here, can a corruption also be synced to the corrupt file on the other server. Well, okay so back to this diagram, here real quick I'm going to use the diagram here, to answer the question. So the idea is that this server crashes down here, right? And so we throw that well, we take the file and we move it out of the way we mark it as crash. We don't ever use it again then we restore a backup here. So if we follow that process we don't have corruption, if you never use a crash file the chance of running on corruption are really slim so he's saying well, if you had corruption uphill, could it push the corruption downhill?


I mean, I guess if you were, I want to say a goofball but say you're say like you're working up here, And I'm drawing pictures on the screen here, Jesse this moving map thing if you're in the on the U.S East and say so Jesse they say this is Jesse's headquarter server, so he makes a change here and then he marks the little flag indicator to push up updates to everyone, right? And say that while he was doing the development work he crashed the file and opened it and crashed it and opened it, so he himself through his bad actions puts corruption into the file then he sticks it on the server. And then, you tell the server to distribute that everywhere. Yeah you're going to take that corrupted file and spread it everywhere right?


So it'll be, if you so there's, I see that it's kind of a three-part answer, if by corruption some people use the term corruption to mean users doing dumb things and that will definitely get synced. If a user goes in and deletes a ton of records or does replace field contents that they shouldn't have done mirror sync can't tell that from saying it's supposed to do and it will get you have people who use that corruption word like that because if they do, they get slapped down here because that's because that's this user's data entry error. That's all that is right that's not correct so, yeah as far as like the file actually getting corrupt mirror sync will not sync corruption. So if your hub file or your spoke file were you know if you kicked the power cord and the file didn't get fully written and you plugged it back in and it said are you sure you want to use this consistency check, blah blah blah and you said yeah yeah just use it. It's fine and then it turns out the file's not fine and like it's crashing all the time. And like the indexes are messed up and things like that mirror sync is not going to sync that corruption back and forth. It will only sync the data from the records that can be ascertained through the data API back and forth so you don't have to worry about that.


The only time that I could see a case where file level corruption could be transmitted from one server to another, is if mirror sync copies the entire file so notifications syncing record contents, but yeah right that's what I was the entire file listening to a vast majority of corruption issues. I'm not being like a you know a mother here mothering everyone so I'm mothering you you'll be mothered you will love it I will mother you and you will like it you remind me so much of my mother. I'm sure, so yeah.


So the problem is that most corruption is caused by human factors. Developers who are under, we have we've talked about this you weren't here, but they're under pressure they don't have good backups they don't back up off enough it crashes. They have to restore, the boss is like go, we're all down what are we going to do? Why do you're a horrible developer? We're going to fire you we need a better someone's better and when you're under that pressure you're inclined to do stuff that you shouldn't do, like use a corrupted file if you do that and the file is corrupt then if mirror sync pushes that file to other places you're just, I mean whatever yeah, but even then it's only an issue if you do it on the hub mirrorsync will never push a file from a spoke to another spoke or from a spoke to a hub


But if you have corruption on the hub, mirror sync won't sync that to the spokes. But if you do something like use the database version feature which we haven't demoed yet, or if you know you add a new spoke and it's an initial sync in those cases mirror sync will copy the file from the hub to the spoke. And then any corruption in the hub file would go with it to the correct A mundo. So yeah, so try not to be that person right? So all right we're gonna go back to you Jesse here so do we wanna let people play with this a little bit or want to let them log in?


I think that would be fun! Okay, so everyone raise your right hand and you swear that you will only do good safe data on live tv and you will not it will be all safe for work. Right Ken, tuley and TK and a couple of people who I know are just like all right so we have, I'm gonna post it over here, I'm gonna make your screen full screen Jesse. We're back to full screen on you. I'm going to disseminate, I am going to push out the the player file here, so here it comes wim so everyone can download that and it's actually kind of a cool one because it allows you to use those be the button that you see.


And then you'll see the, you know the button that you see and then the and then obviously you can log into a specific server. If you want to verify that right, so the credentials I'm also posting in another message here. Oh that's the stop stop stop that will not work let me edit that stop edit. It's not admin, it's live stream live stream and it's not case sensitive on the username but the password is numbers technically that's case sensitive. So there we go, there we go, there we go. Cool!


So everyone can now log in, and if you want to add or edit a record or whatever you want to do, put your own, put your own, pay attention to the sorry, go ahead Richard. Then put your own contact record into the contact table. This has a lot of records in it and put your picture in there. If you want, whatever okay and did you make it so the launcher has buttons to open the servers directly? Oh yeah, yeah, yeah they have a choice. In fact if you want to go grab, then let me post it to you, and actually here, let me close this file first. So now, I just got the one closest server U.S West. Perfect, perfect! So I'm going to try to close the server that should take me to Virginia and then Nathan was going. I got Northern California, if you were going to deploy and keys up in Canada the closest data center to can't do they have a Canadian data center. Is it Ohio?


The closest one to them, they have a tour there's Toronto. Oh okay, I don't think there is A. Is there a Western Canada like a vancouver? I can't recall yeah I don't, I don't know but yeah there's obviously I mean for Nathan it's a little far away for him and there's obviously quite a few data regions around that you could use. We only did, I mean as it is about this is a thousand dollar demo for me folks so it's five servers and we've been running these badass servers for like a week so I'm in palm beach today. Jesse guess that got me to Virginia yeah Palm Beach is, I mean the scheme of things a hell of a lot closer there than California or Ireland right or Mumbai India.


Mr. Scott, okay so yeah kind of neat so you put a reddit and so we're watching so for those of you wondering about this so if you come we're watching down here at the bottom so if you make an edit it will so as you write. You should keep track of the edits here, right? So do some experiments to connect to the server closest to you. Make some changes and within 10 or 20 seconds it should be on the other servers


So try connecting to the other servers first of all to see if your changes are there. And second of all, see what the speed is like you know if this,if you're connecting to like if you're in the U.S and you connect to the Sydney server, for instance then you'll get a pretty good idea of why people in Australia don't want to connect to a server in California because it's pretty awful. And so that's the whole point of why we're doing all this right. Is because, it's obviously much faster to talk to a FileMaker server that is geographically closer to you


And so by trying the different servers in the different regions, you'll get an idea of, you know, how significant that performance difference is. I'm seeing records pop up here. Got Tom popping up in here, I put a record in there, don't forget to put a picture Ron is there Pacific Blue, Ken Tully is there. Awesome Mickey Mouse okay random person although let's see Mickey Mouse images here created by Jesse Barnum was you, you're Mickey Mouse apparently. So, yeah not a problem. Let me see, I could put a few people on our Ireland server.


Yeah! Cool! Well remember even if you're lurking here, you feel free to come play. There's no penalty or anything and you can come nobody's on our Mumbai server yet, so if you're in Asia give it a shot. Yeah, we might leave them. I might come back on Saturday and just invite people because sometimes my Middle Eastern and Indian people come in on the weekends. Kind of weird but yeah, we do have three people on the city server, that's cool. yeah yeah yeah, I knew Sydney would be Australia there's a lot of people there lots of spinning wheels in Sydney. Yeah it can because you're in Albuquerque. Bro it's 200 milliseconds, listen it's like at East 200 milliseconds to Sydney way slower right remember? Yeah, well it's okay it should be slow right? That's why, listen, that's why we put the servers in all the continents. if you get the closest one it'll be kind of quick and snappy and if you have to go away then. Yeah it's going to be ugly I mean for Ken the backup for people in the Western U.S as the Eastern U.S and vice versa right.


If you're in Europe, you were serious about Europe you'd put one in Ireland, one in Frankfurt Germany so you would like switch between those areas right there's Sydney there's also Japan about a third of all the FileMaker users are in Japan.

It's crazy and I have none of them are customers with me because they don't like me or whatever the issue is or I'm too like Japanese , whatever works for that. But yeah there's about a third of all the FileMaker users worldwide in Japan. It's pretty interesting and so it is a lot of fun for me going through and seeing people connect to these different servers at the same time. Seeing what's going on, why don't we do an invite tonight? What we'll do is we'll change the password then we control it but let's do an invite like everyone I'll send out a newsletter everyone saying hey it's like a big a big party it's quite crash the FileMaker server, right? Melting, melting the enterprise, right? Yeah, I mean you got these, you got these great servers. Yeah I know.


Yeah we need to try, we'll turn on webdirect tonight, we'll do it more seriously. That would be great! Got some more records in here, let's see who do we have now. Dave, Dave, Vacley's fact how do you feel let's pronounce his name v-a-k-l white the likes read his last name. I just call him Dave when I see him Dave well the problem is that's Dave three or number four here because so far I've got Dave Learning, Dave Engel, and this is Dave. Okay so Dave three there you go and then one record is blank and then Scott Kane is there. The number one oh my gosh Scott M, dude is that you? You're like a badass look at that photo. That's amazing, so yeah he's awesome so yeah pretty neat stuff going on questions folks. Questions questions? Well, Sydney is being used from New Zealand. Yeah of course it should be right. I would love to know the ping time from New Zealand to Sydney, Right?


I mean, I don't even know I'm going to post a message that I just happen to see in the sync console. And this is a feature and maybe somebody was intentionally testing this. I'm not sure but it tried to update one of the records in the contacts table and it couldn't because that record was locked and that's exactly what we want to happen because this operation will be tried on the next thing. So that mirrors noting that it needs to try that record again.


The next time it sinks so I just wanted to point that out I noticed that on the screen while it was running. Okay so Michael Gravel is in Northern Virginia, he says Sydney is very very slow, right? That's not that, that's just that's okay that's physics right? So here stop, so I want to make sure everyone understands this right, I mean this is kind of fundamental here, right?


And Michael I'm assuming you've been around a while, so you understand this but I mean, so I'm going to bring up this diagram here so where all these people are here right so the whole reason that we put the servers here is because going across the world here. FileMaker has a specification of a minimum speed or a maximum slowness; a maximum latency of 150 milliseconds between the United States and Australia is frequently over 200.


So FileMaker's official recommendation is for Australian users who are accessing American server don't do it. And if you have an American user accessing an Australian server don't do it they don't say don't do it but they said the the speed the minimum speed you need to have is 150 and i've been telling you because what one of you folks here has been doing it was aj or au or a n or nj or whatever it was I can't remember did great speed testing and we knew that it was consistently like 210.


Too slow so you put the servers local it gives you high speed access and they all stay synced up. That's the whole point right? We all get that,cool. So Dave three says Jesse is pretty close in the pronunciation. So okay yeah yeah NJ is a guy in Australia who did the analysis force and did a really great job and so we know concretely. Yeah and so once again you're saying some people I got people in the united states trying all these other servers out they should all pretty much suck okay Jake if you're on the call, could you enable icmp traffic on the firewall? Because then we could do some ping tests and that would kind of you know get to what Richard's talking about. If Jacob is that would be well we could do that tomorrow for sure if he's not here right? Yeah but we'll do some pink tests it'll be good but you're gonna see that from the United States to Australia.


It's just slow and then you know just go. I mean from basically from over here from East to West on a good day it's about 70 milliseconds right? So it's not kind of okay the East and West can be backups for each other but really if the American servers fail they're going to be hard up because then they're probably going to be shunted over to Ireland. I would guess, yeah! So if you've got users in Australia, if you're in the United States and you have some users who might potentially be connecting from Australia, the crappy speed that you're seeing is the same as the crappy speed they're going to see to try to connect from Australia to you and that's with the well-designed solution.


I mean Nick has designed this to be really inefficient. This is a best-case scenario. Yeah if you have a system like most are done with really wide fat tables and a bunch of unstored calcs and things like that it's going to be even far worse than what you're seeing here. So this is the reason to do this, is to see what your users will see. If they're connecting to your server from somewhere else. Yeah, so what we'll do is we'll bring we'll do we'll get the ping testing ready for tomorrow so you can see that.


But yeah that's the whole point. I mean if you have a multinational corporation or if you want to use those words sounds awful lawyer lawyerly but if you have customers or users using the same FileMaker solution in different continents, you really need to look at the solution this will make them so much happier and you won't have people all the enterprise guys go around behind you. The IT guy is going foil motor look how slow it is well it and slow because you haven't rolled out really an enterprise grade solution, right?


So comments coming in took me 11 seconds to open. Sydney that's Dave three says that and then four seconds the usc test West yes that's pretty quick. Average is 175 milliseconds from New Zealand to Australia really, okay. Back up the 75 is here in California. You went to 75 147 133 in California if you're looking for the IP address in Australia. I don't have one for you right now, that's not blocked behind a firewall. We will release the firewall ping block. What port number is that you said or is it just icmp and I don't know the port number. I usually just enable all icmp ports. I think it might be 25 but I'm positive. Yeah so yeah, that's kind of how that works. So this is how you start to see this.


Mr. Scott says, Chris Irving uses wire shock for F and when performance benchmark and monitoring, yeah I mean i've used listen so wireshark is good. You just have to kind of have a very controlled experience with it because of the way networks work and stuff like that, you just can't put it on the network and measure because you can't collect other things on the network that are happening too. When we do wireshark testing between servers and clients we actually try to remove everything else, from that network and yeah and by the way Mr Scott,I wanted to check with him before, I mentioned this and I did. He's at Apple and he's been using mirror sync for I believe several years. And has just recently bought server licenses to start using this stuff that we're demoing now.


So, wow! So a real enterprise deployment, well it'd be great if and I'd love to do a short success story about that just you know I mean if he's out here. But the problem is that Apple hates doing that because they don't like that kind of PR, yeah but yeah yeah yeah so New Zealand to California was 170-75 milliseconds which is about what they were getting from wherever NJ was to California. So it's in that it's over 150 and it's in that kind of area where it's going to start to stink. Mr. Scott didn't go ahead. I was going to say I think the distance from New Zealand to Australia it's a long way. I think it's like somebody's going to laugh at me from New Zealand or Australia because I'm going to get this wrong but I think it's probably not too dissimilar from like East coast to West coast of the united states you know it's a good long distance yeah it's a four-hour flight yeah Mr. Scott Says combining combining mirror sync with webdirect where the underlying solution is 100 theme smart data denormalization short to hops. No yeah, I mean so that's the whole point of the Starting Point Enterprise right? So he's talking about creating a solution from scratch. It's Lean Design, I just posted a link for those of you who saw that a little bit ago, which is the FM it's our enterprise. It's the version of starting point but it's all been Lean Designed there's almost no store stored calculation summaries it's all very very lean that's why this solution works so well for that it's about as fast as you can make it.


I think generally, the performance would be faster than web direct I guess Mr. Scott and Nick Hunter are two big web direct fans. So anyway, that's how that goes but yeah pretty interesting web direct only solution. Well if you're building from scratch feel free obviously building a CRM out and making it lean is a lot of work, I can tell you because that's why and how we built what we built yeah so this is we spent a lot of time talking about this so the when you the reason this actually generally works is I mean the mirror sync is really good but you have to have a Lean Design database. You can't get to enterprise level class applications without that which means as you're building relationships the foundation of everything. Yeah you need to start off with good software design before you even start to think about the hardware. Yeah so Scott's talking about having really flat table occurrence groups things like that's what this is so, this is basically it's a CRM see how they're grouped like this. If you do a big spider diagram and lots of craziness you're gonna your life will be very miserable and so this enterprise version we actually found during we talked about this one day.

We were doing a kind of a Jesse was going through it and doing an audit and he found a couple non lean things in it and we went back and fixed them and so this the version here the 20. 0. 1 has a couple other performance enhancements where we were unnecessarily shuffling the preferences record and one of the fields in the preferences record had several megabytes of text in it which was a mistake. It needed to be in a different table and so because we were constantly banging away on the preferences record people were getting this update and then the update would include this two megabyte you know two makeup or two bytes of text or whatever it was there's a lot of characters in there. It's a bunch of javascript so we optimized that so the idea is to keep this as fast as possible Nick is a big fan of web direct my biggest challenges with webdirect is that it does seem to be flaky if you send it, if you sent webdirect out to 100 people you're going to have 10 people come back and say it randomly just does crazy on their computer even if they're using the right browser.


And so because of that getting barbecued by customers like that I don't like to have that kind of failure rate and it's not just me you ask all the big consultancies they stay away from it because they don't no one likes to get yelled at and I don't want to get yelled at so as a result we stay away from things that will get us yelled at. I think web direct has its per uses in my case. I would use it when pro and go won't go there but there are a handful of people who just will just use it just because they prefer that over other stuff which is fine so that's cool!


So I've been keeping an eye on the sink as it's been running and it looks like at our peak at our busiest point in time. I saw the sink take about 120 seconds so it's running every 10 seconds. So if you do the math that means that pretty much every time you make a change in 130 seconds just over two minutes, it will be in the other four servers around the world and so to kind of just summarize you know the benefits and what's being accomplished here, we're able to have a local copy of FileMaker server running on five different servers around the world.


Anybody around the world can use that DNS latency feature to automatically connect to whichever one is going to be fastest for them have a low latency kind of not quite local network speed but you know a fast wide area network speed to a you know a relatively close geographic server work on the data on their own server and then in the background within 20 minutes or 20 seconds to 120 seconds have all that distributed around the world to all of the people that they're collaborating with. And then if any one of the servers goes down, the combination of Amazon's DNS combined with mirror sync will route that to another server and then when that server comes back up Amazon will take care of restoring it to the condition that it was in. And then Amazon will take care of routing the traffic back to that so I think you know from an enterprise standpoint you know we're checking off two of the pretty big check boxes on the enterprise check mark which is reliability and scalability. Yep all right. And you know those are, I would say those are only those that are up there with security. You know those are the three kinds of the holy trinity of security reliability and scalability and so I think we're hitting two of the three and then this has nothing to do with security.


So that's you know a whole separate conversation not absolutely but yeah this is I'm really happy with how this demo is going. I'm really glad that everybody participated. It was really cool! It was really cool seeing people hit it from like Australia and all over the world so I know Richard you and I did a demo two years ago devcon on local clustering where we had two servers basically running on the same lan as each other and we were using that elastic load balancer. And we used mirror sync to keep them in sync. This is the first time i've personally gotten to see mirror sync and all the years I've been working on it, I've never actually gotten to see mirror sync live with a bunch of users in all different countries and continents around the world. And then mirror sync running, you know smoothly in the background keeping it all in sync.


So this has been I think just as much fun for me to see, as it has been for me to present it and someone said I purchased mail mirrorsync this morning based on this week's demo. Jesse is so amazing. I love him! I'm jealous of his wife! No it doesn't say that but people are buying by, I'll hopefully copy you by the product because here's the thing I mean we have a bunch of lurkers here and the lurkers lurk, we don't know who they are they quietly sit in the background quietly in the background so we don't know who they are. But you are here so feel free to cash in and get a good deal on the software or come to our fmtraining.tv and get an awesome bundle of training. And that way we can pay the bills because my Amazon bill this month is going to suck it's going to be my normal bill plus probably 1200 bucks just for the demo for you folks.


So, anyway you're as we say in the business, here we go you're worth it right? Not sure Ken is worth it. Hot air balloon guy, he's a little sketchy him and TK, I don't know about him but honestly but no it's a lot of money that's why when people you let people know by the training, if they already have FileMaker and they don't need FileMaker then just have them get this the video training.


It really helps this, you know they get something out of it. We get to email them to keep them connected to the community and so that's it for now. We'll catch y'all tomorrow! Check oh you bought a copy on Monday. What Ken? What did you buy a copy of mirror sync? Ken holy cow so we've had several purchases. Jessie is awesome. Thank you Ken! Yeah so Jesse, you're not you can you have more than top ramen for dinner tonight. That's good, thank you! Alright cool!


Alright everyone, I appreciate it. We'll catch you tomorrow and we'll see you guys tomorrow. Invite your friends, we want to break, we want to melt we're going to.


Okay, tomorrow's broadcast, we're going to call it melting the enterprise, alright, cool! Thanks!

Transcript

Day 5 - FileMaker Sync - Worldwide Replication & OffLine Sync - Jesse Barnum

Warning! This broadcast is for mature audiences only. Do not attempt to perform similar stunts with your own FileMaker servers unless you're trying to get the attention of your boss. The server crashes in today's broadcast are performed by certified professionals. Do not attempt this at home! Viewer discretion is advised. [Laughter] Well that's a good way to start a Friday. Hi, I'm Richard Carlton, creator of fmtraining.tv where we blow up FileMaker servers and just to emphasize the fact that this broadcast is not sponsored or endorsed or is the opinion of Apple or Claris or anyone else who might be a fortune 100 company. We just blew up the product, and they really hate it when we do that. So Richard Carlton here. Welcome everyone! It's going to be a very awesome day today. So I wanted to frame the conversation today and get things going here a little bit and so what I'm doing is I'm going to quickly go through the opening slideshow here.


And some of you didn't understand how this all came about, and so I wanted to figure today is the last day of our enterprise deployments with the FileMaker platform. And so, I wanted to kind of phrase what happened so back in may sometime I got this call said, hey Richard did you know that we are now enterprise? I'm like we're what? We're enterprise, I'm like what are you talking about? Right and I said well they had this news article and it wasn't just one, it was several where Claris management has been out touting and advertising that they are now an enterprise software company. And I'm like really? So of course, if you read that this is msnbc or whatever but it was posted to in euros locations etc and I was like, wow, really? And so then of course we kept reading kept reading in it and it you know directly implies that Claris enterprise but there's like a little bit thin on the details.


And so I was like, well if we would be an enterprise, we can help claris. You know make the case for that but I've never really done a super enterprise kind of thing. And so, I said, I called up Jesse and said hey the only way I know to get to the enterprise is with the 360works product, right? So it was funny because I posted a notice about this today saying, hey we're trying to show Claris how to be an enterprise right because it's not really enterprise. The product and market is not enterprise even though they're saying, hey we're enterprise. The product by itself cannot get to the enterprise. The only way to get the enterprise is with a third-party product which is great. It's inexpensive but you know just understand the mechanics here, so I got a hold of Jesse Barnum and said, hey so if Claris is making statements that they're the enterprise, I mean, I guess we should help them a little bit right?


Makes sense, and so we can help you know demonstrate the fact that they are truly enterprise and Jesse goes, Oh yeah! Yeah no problem! We could totally do that because we have the products that do that and so we're going to be demoing that today. So today's broadcast once again, I'm Richard Carlton, creator of fmtraining.tv. A lot of you already know who I am, obviously for those of you who don't know who I am, I'm Richard, right. And in some places that I'm the only blank Richard because they don't like me and then some places it's okay like Jesse's like, he kind of likes me a little bit. So today's broadcast is sponsored by fmtraining.tv. Where we create great live training broadcasts like this one, right here. Every day at one o'clock business days not Saturdays and Sundays generally.


And so, we talk about things in the FileMaker platform. If you go to fmtraining.tv and you press the live training tab down at the bottom you'll be able to see the upcoming broadcast schedule across the bottom. Here this is data that's coming out of FileMaker that's called eating your own dog food right? When you build a product and then you use your own product it's called eating your own dog food. The sign of a great company is when it eats its own dog food right? Does Jesse Barnum actually use the products that he creates? We should ask him a little bit, right? I think he probably does and so that part of it is awesome!


Now keep in mind we are broadcasting on high definition to Discord,YouTube and to Twitch. Twitch is generally if you're just gonna jp in once or twice and that's fine if you want to come and have more of an ongoing conversation with people who are here a lot then you want to visit Discord. I'm sure that TK55678 has already done it. He's posted the 24 hour invite link. It's only good for 24 hours on the channel.


I will post it momentarily and then scroll down here. If you want to help us support this channel, it's important right because these five days of broadcast it up but it's like 160 to 180 a day in fees. I think it's going to be closer to what I was telling the wife, it's like how big is this bill going to be that's going to hit my American express bill. Just to demo the enterprise, right? It's actually probably closer to 1500 to 2000 bucks. I was laughing, so anyway I just like to pin my nose and don't look at it, because I think it's valuable for all of you to see that you understand that FileMaker can be taken to the enterprise and really that's the only way without spending about a million dollars.

And I mean that very seriously. if you want to take it to the enterprise in a reliable way and make good on the statements that were in the press release or the news article from msnbc, then you've got to use basically this product or one that where someone stole it and is reselling it or so, I don't know. I mean you have to basically use mirror sync. I don't know any other product that will really do this and and of course buying it is always a preferred mechanism. And so, if you want to support the channel and keep the funds going here, so we can continue to do these live broadcasts which are free, definitely check out our website right here and select the bundle and purchase one of our training bundles. It's really awesome! We greatly appreciate it and we're getting towards FileMaker at devcon, right?


FileMaker devcon except they call it engage now and it's all virtual, it's all online it's virtual and so all the vendors typically get together and we start doing these devcon deals so if you want the devcon deal you can get a double of our bundles for like a lot of money off. It's much cheaper to go to this link here bitly, bit.ly/fmdouble and you can get one year for one user for two years like a two year deal and that's all it's a copy of our training of our special CRM copy of FileMaker pro 19 for mac or windows. Pretty cool! Or you can get it for two users for one year. Now Jesse Barnum is here. He's awesome! He makes this stuff that works on the enterprise and specifically Jesse has a deal, some of you have already taken up on this deal, I know that certain very large corporations have been buying this, right? Certain fruit companies that start that rem that let's see the they rhyme with maple, right?


So if you know a fruit company that rhymes with maple, they are using this software right? We can't say who that is because that would be some sort of an official endorsement which is not allowed. But mapple is using this software and if Scott's there, Michael Scott, I think he's here. It's pretty cool stuff and that number of people have been buying this deal. This gets you 15 percent off basically off the software that allows FileMaker to be pushed at the enterprise. And so I don't really think you can get the enterprise in a reasonable sort of way without something like this.


This product has been in the market for about 10 years with this product. How long has that been with you with this product? Yeah, I think we started working on it in 2011. Yeah so it's effectively 10 years. It might as well just round it up. It's a rounding error so 10 years of him building it. Understanding the world of sync is getting better at the world of sync. Other other companies kind of dabble with sync a little bit, but this major focus is probably your number one product. If I had to guess, if it's not okay, yeah I would think it's your number one product and so this gets you a discount off of it. People are buying this Jesse was like, wow people are buying. I said yeah because this is an awesome training venue, he's like ah yeah Richard no one watches. Richard you people are stupid. So anyway, that's exactly what it is, that's what he said yesterday.


Ken has a question, when you set up a new spoke and it sends the file for the first time, is it sending all the data in the file or does it piece. It does. It pieces it out as the sink happens, yeah! So kind of there's a few parts to that answer the short answer is yes. It sends the entire file so and especially like in this case with FileMaker enterprise, FM Starting Point enterprise edition it's a single file. It has no external container data so when we push that out, what's happening is we are pausing the file on the hub making a copy of that file resting the file. The nice thing about the pause versus the close is that we don't kick any users out on the hub. So we could actually run this and make a copy of the file and there would just be a very short momentary pause where users couldn't write to the database but nobody would get kicked out.


Then we zip that file push it to the spoke server and then open that up on the spoke server using fms admin and then and then we tell FileMaker to host that file. Let's say you have a multi-file solution, our largest sync solution that we have for our largest customer has about 30 files and I think one of the files is about 250 gigabytes and the others collectively add up to another 300 gigabytes. So it's about 550 gigs that file takes about that whole solution takes about eight hours for the initial sync and the majority of that time is not the sync, the majority of the time is just compressing and moving the files from one server to another. So what we do to try to speed that up, is that if it's a multi-file solution, we will start a multi-threaded process where we will compress the first file, send that to this to the spoke server and while that's still sending we start compressing the other files in the background so that we're not having to wait for all of them to compress.


And then all of them to send, so basically and we do it in descending order so we'll send the smallest files first and they go quick and while they're sending we're compressing the larger

files behind it to try to just keep stacking the network as fast as we can. The other thing that is not just to add a little complexity to that answer is that everything I'm saying is for server to server syncs, if you're talking about a server to client sync we have the option when you give your users a here, let me show you on my screen. Right now, I've got a mobile configuration. I don't know if we want to demo that or not. I'll leave that up to Richard but you can demo whatever the hell you want, people are starting to log in, and we do have a couple other random questions. Oh, that's fine, but Ken's. Yeah you're doing great just keep it up!


So I've got a mobile configuration which is the same database and when I click the download database button we recommend usually using this create link option. And what this does is it's basically going to create a url that we can then email or text or whatever we want to do a post on a web page or something we're going to get a url that somehow we send to our users. And then those users will be able to use that url to download their mobile offline copy of the database, so you don't need to go into server admin close the file like put it on s3 or dropbox or whatever and point users to there you can do that if you want. But this download url makes it a little more convenient and what I wanted to call attention to relevant to the question that was asked was this choice here: full copy or empty clone. You have the choice to pick an empty clone that way the user is getting just the empty file with just the schema, the layouts but no data and then on the initial sync. It'll pull the records in that apply to them I wouldn't recommend doing the empty clone if you're giving them the full copy if correct all the records database I was waiting for you to say, why that's important if you just thinking, Ken like if you're syncing an ipad down or a laptop down for just one person you want to send the records just they want and if you have a database with all the records in it, then that's kind of a waste. Right.


So yeah so let's say each user only gets their own records and no user has more than one percent of the records in the database, you would definitely get a faster sync by picking the empty clone option. They get an empty file and then they're pulling in one percent of the records as opposed to giving them the entire file. And then, on the initial sync, we delete 99% of what they have so that's an option that only applies for mobile syncs and not for services. Okay, thanks for the question. Yeah! Good question.


So then, this is from a gentleman from yesterday or a person from essay D, the likes right we're back to that again, me trying to pronounce words. This is what I guess, what is the difference between syncing to mysql to FileMakers to from FileMaker server to mysql or dynamodb and the dynamodb is like a multi-hour conversation to rewire everyone's headers too. I sat there with Jesse at devcon. The last real devcon and he did a brain D P on me on dynamodb. And it blew my mind, it was really awesome but it is a very alien concept. Yeah, it's something like an alien, there basically and so it doesn't like a relational database like if you really learn FileMaker and you go to sql, you kind of get it right. You really do but when you go to dynamodb, no negative I will say that there is a significant learning curve to understanding how dynamodb works.


But as far as the mirror sync, part of it it's actually easier to sync a database with dynamo than it is with virtually anything else because dynamo doesn't have fields and so you don't need to set up any tables or fields. You just sync and whatever we give it stores, so it's actually extremely straightforward to set up a dynamodb sync. Yeah. Definitely, alien stuff there. Ken says, thank you for answering the question about the download etc… on the sync, right? So yeah, let me make sure we address Dave's question there about mysql. The only thing that would be different is that if I was syncing with mysql, I would do the exact same thing. I didn't get enough configurations when I set up this demo to do more than five, so I'll have to just talk through it. I'll have to talk through it, but you know what actually I can just show you right on the screen here, let me edit this.


So this is my hub, you guys have all seen this before if you were on the previous days. The next screen is going to tell me to create the layouts and then the next screen is the interesting part so here, if I'm syncing with mysql, all I do is I pick my sql here and then I put in you know whatever using my password wouldn't do root probably but and then this isn't gonna well hold on and I'm not sure if I've got the right firewalls and stuff like that set up for our mysql server right now. But the point is that it looks like we are hitting a firewall problem, because this should have finished by now. But the point is that this is the only screen that's different. You pick this screen and you put in your sql connection information and then everything after that is the same as that's the firewall. Everything after that is the same as what you're already used to. It's going to ask you the same questions about bi-directional sync, how do you want to merge conflicts, that kind of stuff, so that's the only difference. What if you're using a mysql oracle microsoft sql server?


If you're using a generic jdbc database, here's the dynamo page where you set up your access key, your secret like I said dynamo is actually the easiest one of all of them. All you need is an access key, a secret key in which region you want here's redshift and I'll need to figure out what has gone on there. And then here's salesforce salesforce is also pretty straightforward to set up, so after the screen the rest of it is all the same. I do have an A, I guess it's a kind of a question statement, then we should probably go into the conversation about latency and play with that for a little bit. So, I don't know who has a really practical need for this or maybe he does. I don't know but he asked the question well, what's this is the question he asked what is the largest possible number of connections in between servers and mirror sync. And I'm thinking he means the number of servers between what's the maximum number of servers.


I think that's what he's written the most servers I've ever set up is right now. You know what I've done, I've done pretty extensive testing on how many clients you can sync. We've gotten up to I think 300 syncing clients and it was still running fine. We could have kept adding more but I didn't want to pay for more ec2 test instances actually and so I don't know what the max is for clients. I've tested up to 300 for servers there is no hard limit built in but this is the biggest test we've ever done.


We've got five servers here, but I think you could probably see, I think you do seven or eight or ten pretty easily. From what I can see, I don't see any reason why not? What you would start to run into the more servers you get the more likely that one of them is going to be very slow. If one of them is down it's not a problem, we just skip it and keep going with the others but let's just say one of them is really slow, we can't skip a slow server so that winds up making the overall time you know significantly longer for all of them because we're basically going to run the speed of whichever connection is the slowest. So I think that would be your big limiting factor. I think if you're running with all servers on the same lan like a big cluster, i'll bet you could hit. I'll bet you could do dozens and it would probably keep working fine.


Yeah, I think that one of the most popular, we didn't do the diagram today on this, but let me just kind of JP out here to this the diagram over here. If I could find my little video, wherever my little video went. Yeah, this one right here, so this is the video where we talk, we show the servers and they're talking and communicating, the idea here is that you put a server in each of the regions so the people who are local to the server have the best fastest access. So this is a diagram and Lexi didn't see this. Yesterday we were showing the updated version. This was yesterday, so the idea is that the local people. That's why there's a button in your launcher file for those of you who have that press the button, it'll through and we covered this yesterday. Go through dns and find the closest server based upon latency for you.

And the idea is that, it's going to direct you there if that server is not available it fails whatever then those people are directed to the next closest server but I could see also a more interesting situation, here is where you'd put two servers together on a rack and then in one data center or in my office somewhere and and then those two servers do two things. One you have if one of them crashes then the other one can carry the load and when you restore the one that crashed the sync will automatically rethread all the missing changes etc, right! So if you restore from a backup from an hour ago but there's data in there the mirror sync will go oh this is a backup, oh it's old by an hour or two hours or whatever it is, it's going to thread first thing all the data to bring that database up to date which is huge! Yes, we demoed yesterday. We demoed that yesterday and I did not realize it would do that.


I mean, I guess it would make sense because you want to keep them all synced up but that's really impressive so the idea is that with I mean that's like enterprise class stuff, it really is and so that's why I talk about this to you know, I mean so for those of you missed this animation yesterday. So the idea is that, if you have a failure like, we'll have down here in the bottom right corner in Australia before we just pick on the people in Australia, it blows up that these people don't have a connection anymore. If they try to reopen the file or use their launcher again, Amazon directs them to the next closest server and then they can run on that one for a while. The people can re resuscitate, this one down here and what ends up happening is that once it's up and running it gets resynced.


And then these people when they quit and reopen will reconnect to the closest server. So it's really important stuff. It's really great and then Jesse you are looking at any of this or you want to talk about the latency a little bit? I mean, we'd have a couple questions and mirror sink candles. I figured I'd quickly show what the ping times look like, so yeah! Let's do that in Atlanta. If I ping my closest server is going to be B which is the East Coast. Hopefully that's like 30 years, I'm getting 30 milliseconds which is very usable. Yeah that runs great, so my next closest server is going to be where you are Richard. On the West coast that's A and I was getting 90 on this earlier. Okay, so the fastest. Okay just so everyone understands the fastest I ever see from East to West Coast is 70 and so this is 85 to 90, right?


And remember that the magic number from clarisse officially is 150 or less, is their recommendation so but you'll definitely know the longer your FileMaker is very latency sensitive. So if my latency is three times California to Virginia which it is that's going to feel about three times slower for everything that I do, for every click that I do and every edit that I make, it's going to feel like it's taken about three times as long, so then let's go to Ireland. And Ireland is basically four times longer compared to you Virginia and now we go to I think the next closest, for me would be Sydney which is E now. You start getting you know beyond that 150 milli second threshold and I connected to Sydney and to Mumbai overnight just to test with and it didn't fail.


It did work, but it requires a lot of patience in order to do anything with it. And I think the slowest for me was Mumbai which is D, yeah. And now we're getting 240 230. It's a toss-up that's faster for you from the West Coast United States to Mumbai. It's hovering at 299, right around two almost 300. So it seems like when we go to Mumbai we're going from the West Coast to the East Coast. And then right because, remember from the U.S to you, it's about if you look at the numbers, it was about you know 90. If you had 90 of these numbers that's about what you're getting right. So it seems like our trunk out of the United States goes not from the West Coast but from the East Coast at least to India it looks today. Who knows did you want to you know I was I experimented with web direct a little bit before we started our demo.


Go ahead. Yeah, web direct was actually pretty decent to my local server and you can notice that I'm using the same domain name here as our cluster. So this is automatically routing me to the fastest thing which I know is going to be Virginia. Now keep in mind, if you get a security error here or a warning when you do this on webdirect, it's because we're J ping ssl, right from one domain to the next. So right now we're using 360works.com for our cluster domain because I just set that up on my own Amazon account. But these servers are really RCCis. At rcc is the name so if you get a lock warning about an invalid certificate, it's safe to ignore. It's just because the names don't match. Yeah! So yeah, thanks for pointing that out right.


Here I found the speed quite decent on web direct going locally. I don't use webdirect that often and I started using this I was like, hey this is really not that bad and so I can come in here and I can click node, and I can give it a subject and and commit that and it commits very quickly and everything's good. I tried it in Mumbai and did it. Let's do it. So I need to put in the actual domain name here because I'm not going to use my cluster address that'll always take me to Virginia. But right away, you can already see it takes quite a bit longer to get logged in. I mean remember this is 200 and what 30 milliseconds. Yeah, yeah so going into my contacts that wasn't too bad that was pretty quick. It's not bad. Yeah! Well that's what I found the problem is, when I started editing records, I like scrolling here, there so if I scroll now I'm releasing and there it shows up what I found is that when I started to edit records like adding notes.


Sometimes it was okay and other times it just hung. And I would eventually have to reload my browser. Oh, really? Wow yeah, yeah that's kind of the rub with web direct, so it's, you know everyone's like Michael is actually talking it up quite a bit. Nick likes to talk it up. It's webdirect is really great until it's not and there's definitely until it's not part of it. You don't really have it, till it's not and go and pro but with web direct there's definitely A you know there's the glass is half empty and then there's the glass is pretty much totally empty and broke on the ground if you have to. If you're in the middle of a solution, you have to reload it, which means relog in and reboot it. That's a failed solution, so that's the problem and that happens enough that makes me nervous that I'm like, so yeah. The second record I tried to edit, I mean so far this has all been going okay for me. But, when I went to Mumbai, the second record I tried to edit I got a little. It's doing some flashy thing right here where I'm not doing anything.


That was just flashing on its own but I got a little spinner icon, right here that just never went away so you know. I mean it, it's impressive that it works and actually I find the speed is especially considered that this is the moon by server I find the speed definitely slower than local but not unusably slow. It's just that when you hit a glitch, it can be fatal. Yeah, it's always fatal and that's the problem and whenever it hangs, it just hangs. And then you're done and I don't want to send a product that's what I was trying to say. The other day and people are like, oh Richard's full of crap but I don't like to sing customers on a website or a product where there's a 10.


My general impression, it's other people say it's higher than this but at least a 10% chance of whatever you're doing just gonna hang and and so I mean that's why there's pro that's why there's, oh and then there's this web direct thing which is kind of this peripheral thing. The problem is Claris wants web direct to be the center piece. You know the marquee product, the main you know piece forward because they want to be everything on the web. Except, it just is not good enough for that so it is kind of somewhere between messaging and execution. There's a problem, so anyway it just, if it's not it's not an opinion just is right. So and I think, someday they want it to be better and that's fine but the pro file you know this database product is pretty damn sophisticated to mimic a copy of pro or go in a browser is an epic effort.


That's what Nikko really is and the fact that it works at all is amazing because if you have as you remember instant web publishing back from the old days from Claris from 4.0 that was a train wreck and so anyway. So, but yeah, I mean it's pretty great for that so anyway Nathan Schneider, they say that Nick Hunter said that paid you to talk nice about web direct so or Nathan said dad Nick because Nick loves it that wouldn't be fair Claris wants web direct to attract the android user without saying we are developing for the android platform.


Actually, it's that too, yeah. No, but they actually if you look at all their marketing they say cloud first, they did that last year devcon. They ran around for 24 hours saying cloud first classroom. Class first, oh I have to say FileMaker cloud is I've been pretty disappointed with it. I have not been able to use it the and I mentioned this in passing on the first day but just to make really clear, what I was talking about, there appears to be some limitation in the FileMaker cloud data API where the data API will only work if you are logging in with FileMaker client. Or to the FileMaker like my FileMaker site in your browser at least once an hour. I don't even understand how they can even say that the product has a data API at this point, I mean it does have the data API but how many of your customers that you want to use your data API driven website are also going to first log in with FileMaker pro.


And then once an hour keep logging in with FileMaker pro because what happens is when you make those data API calls, after an hour it stops working until you log into FileMaker pro. So obviously, it's useless for any sort of public web application. The only people who could use the application are people who use a mixture of FileMaker pro logging in regularly and the data API. And so, like with mirror sync, for instance if you wanted to set up mirror sync to sync with FileMaker cloud, it works I've actually tested and it does work. But you actually have to rdp into your mirror sync server once an hour. And then log in with FileMaker pro in order for it to keep working because otherwise they have a blacklist that after an hour stops working.


Yeah, so it's not even a bug like it's not a bug. This is something that somebody engineer actually took after an hour. If they haven't logged in with FileMaker pro , turn it off. Well we went through the intentional. Yeah, we went through it a little bit with them and what we found out that there were some hooks to some internal and it's more of a technical conversation but my I have a very technical guy that kind of operates at the Jesse wavelength. And there was a service, I don't know JacobTaylor's there but there was a service that they had to turn on on their side so we could authenticate properly.


And without that turned on, you just couldn't authenticate properly. That's only one part of the puzzle, yeah. So I got that, I ran into the same problem that you're talking about. I was able to solve that problem but then there's a barrier that comes after that. So even after you get that login part working, it'll still only work for an hour. And I'm not anti-cloud, I mean so we have cloud one and cloud two. When Jesse today has been talking about cloud, he's talking about cloud to the new offering. I actually like the simplicity of the setup. I think it's fantastic! I just think that there's some gaping holes on the back side.


Someone was asking me, if it supported sassy and I was like you know, it doesn't. There's so many, there's now like six server offerings in the market. Six and I was like five or six, I've lost track and so I was trying to remember the sassy. Is sassy support on cloud 2? It is, but there's no plug-ins allowed, so you can do sassy but and so you can do psauce and sassy. So, is there an interface? How do you control the schedule? Do you with the data, yeah. No, you can do it with a script from the server on the client but I don't know if there is. Don't cheat now, Jesse Barnum, that's cheating. It's pea sauce is pizza, sassy when you schedule it. So yeah, so don't worry i'll keep you straight here in the training department.


But yeah, I mean so psauce was great. That's an important part but if you want to schedule it, it's almost going oh we can't schedule it. Well there's not an interface for it I guess, you could try to use the data or the server the admin API. If it allows for that I think there is a way in the admin API but I haven't done it myself. We have to get Klaus in here. Klaus makes a solution that does the front end of the servery stuff. How much in a couple performance tips that occurred to me while I was setting this up, okay. Should we go back to your screen now? Let me go and do that. It's okay. it's just talking, I'm not showing anything, okay.


One is that it will help performance a lot if you want to set this up to put your containers in their own separate table. The reason for that is, if you've got 100 fields on your table and then two container fields at that or one or two whatever it doesn't matter any container fields. If you change any one of those fields, mirror sync will write that entire record with all the container data to the other servers. Whether it's an internal or external container, correct? Yes. whether it's internal or external mirror sync doesn't differentiate which fields have changed. It's just going to say, hey I know this record changed. I need to write the entire contents of this record from here to there.


And that's not such a big deal if you're talking about text fields, but if you've got you know a couple megabytes of photos in with that other data, that's also going to get synced so one performance optimization you put your containers into their own separate table and that way all the non-container data will sync but the container data will only sync if you modify the container in its own record, right? That's a tip, so if you're thinking about doing this seriously and you want to optimize the performance as much as possible,well that's the enterprise baby.


It's all about performance. I do want to ask a question here though, because you're saying that really you're doing record level pushing and reading and stuff like that except when you have a conflict. And they need to do this threaded field thing, right? And that's where you actually look at which field this and that and then you thread. We did that two days ago, I think on Wednesday. Yeah and even then, we still write all the fields we just look at the individual fields one at a time and compare them. We do a three-way merge, actually what we do is we compare them server A compared with server B compared with the last time that server A and B were synced. If we just compared server A and B, server A had the value red in it and server B had the value of green in it.


We don't know whether server A changed it from green to red or server B changed it from red to green. But by comparing them to what was this, if they were both green, the last time we synced, then we know that server B didn't change it to green. We know server A changed it to red. And that's how we know which server made a change and that's so we do that three-way merge to be able to tell which field to write over. And we do that on a field by field basis but at the end of that process we end up with kind of a unified record. That has all the fields merged and then we still write all the contents of that including the containers to each side so we'll always wind up writing all the container fields and all the fields in the record.


Everytime that a record gets modified for conflicts, as well as regular non-conflicts, okay so if someone's helping with my pronunciation, I have tar e mo tar emo from New Zealand, that's awesome and then Delinsky is asking did you touch on how sync would work with super container? Could you have a sync with multiple super container servers? That is an interesting question, so for those that aren't familiar with our super container product, it's basically a web-based cloud,kind of files I shouldn't say cloud because most you can install it on the cloud or on-premises, so it could be either way but it's basically a web-based file server and you can access it in a web viewer as if it was a container field and then all your container data instead of getting stored with your FileMaker database gets stored wherever you happen to be running super container which may or may not even be on the same box as your regular FileMaker server.


And so typically when people have been syncing with a super container, I've been operating under the assumption that they have one super container, and then one or more FileMaker servers or maybe it's like a FileMaker server to a mobile client. Either way, I've worked on the assumption that the super container just has one instance always available and so you're going to access that same super container server whether you're accessing it from the server or whether you're accessing it from the mobile file or another server.


They all just share the same url which points to the same super container wherever it is because all you're really syncing is that the url field that contains that reference. Now if you wanted to do what Steven is talking about, I think it would be possible to sync the super container server itself. Mirror sync won't do that for you because mirror sync is specifically about FileMaker and about databases and supercontainer is not a database. So mirror sync doesn't know how to sync supercontainer. You could do it using file level synchronization and then you would need to write some calculation fields for your url so that you would know that when you're talking to this server, this FileMaker server you talk to this super container.


And when you talk to that FileMaker server, you talk to that supercontainer and as long as you are then syncing the contents of the super container data volume then that should theoretically work. I've never done it and if you want to give it a try I'd love to do a case study on it. But I think it would work in theory. I don't know if it'd be worth the effort though, because a super container is typically used for storing large files and documents and photos which are not particularly latency sensitive.


So I think you wouldn't get a very noticeable speed increase by doing that. Okay yeah! It sure is. You should be curious to think about it. Yeah, yeah! So there's a little bit of conversation going over here. So that takes care of Mr. Delinski. I hope Nathan scheider was talking. You know Nathan, right? They're keeping track, they have a running list of all my little sayings so he's a conflict resolution problem child. Oh okay, yeah! Well nobody's great, Nathan I really actually I pick on you but actually we've solved a lot of bugs in our conflict resolution from his reports that he sent.


I actually really do appreciate those reports you sent in. All right! So, I'm gonna read a little bit of this from here, he's been babbling away, so he says, how about Jesse talk about some of the common customizations that users do within the script? Give people ideas on neat things that users are doing. So for example, I use the user token to filter records, user token is a special variable that gets passed the server and then another then he says another one here, i'll let you kind of sort these Jesse another thing was just I can't read them so if anything you want to mention, i'll I'm just okay. I just gave you the one about the user token and then he mentions another item you can decide which of these are more valuable or do both.


Another thing we discussed before with Jesse, this week was the idea of separating your graphics into separate related tables. We just kind of covered that as a major way to increase your speed. Once again separating the graphics and having improved performance. I want to be really careful, there's some more junior basics. People here this is mirror sync conversation and enterprise conversation. If you're using one FileMaker server and not using mirror sync which is 99 % of the people out there at the moment, Although any second, that's going to change because enterprise is going to take over FileMaker, right?


But that being said, containers are not normally brought down when you download records. Unless they're on the layout there's certain like when you like if you're going to display like I'm on my screen for a second and let's say, I'm gonna go, I'm gonna, I'm not, I'm on the home. Let's just pretend, I just logged on. I've never been here before. I'm on the home screen right? Here and I go to contacts. It's gonna load this miles debsky's entire record here and if this container wasn't here, this unicorn shooting rainbows then the container would be skipped. So when you load a record, it loads all the fields of the record, all right.


Now, it won't trigger maries or unstory calculations unless they are needed on screen. It won't download a container unless it's on the layout. Somehow it makes sense. So the idea of separating the containers out is not necessary, that's a very specific mirror sync trick. Yeah, it's a mirror sync trick. So understand that so when people say, oh separate it out it's much more efficient not really it depends if you're using mirror sync and then it's useful like if we were going to use this product and we had a lot of images going on, I would probably take this image in and move it out and there's also a little digital document management thing.


We can put contracts and stuff in here. We would take those items and put them in their own table, away so that would help the sinkiness go faster, right? So, let me come back to Nathan's point. About the user token because that is really good. Yeah, okay then I'm going to switch back to your screen so you can demo the user tokeny part right yeah and I don't so let me pull up, all right we're back to you now. Okay. So in this, the area that Nathan's talking about is this customization section which I think we've talked about before but this is kind of a new tip that I didn't show before. So here's the customization section and you can customize any of these options.


This is a preference thing that will sync is something that will run before the sync starts. So if you want to do some kind of overall thing like maybe you want to write a log record of someone that says syncing is starting at such and such time you can do that. Or you could say things like sync from user such and such starting now find changes is the big one that most people customize. And I'm going to come back to that show message that allows you to control all the dialogues that mirror sync pops up. So let me just j p down for a second and i'll show you what they look like here's the show message set stop pops up where pops up where on a mobile device this is this is this has much more to do with the client sync than a server servicing got it okay my brain was thinking the enterprise. Yeah, you're right.


It doesn't make sense in a server environment, okay. But for clients, these are all the canned dialogues that mirror sync will show at various points during the process and like error messages sync completely on that kind of stuff. So all of these can be customized, you can come in here, and if you don't like our wording like this is your first sync from this device, if you want to say this is your first sync from this ipad you can just change it and so this is all customizable. We've had people for instance customize this into other languages for their users.


So if they have some Spanish users, they might come in here and they would have an if statement. You know if the language is Spanish, then do this else, you know do that everyone knows how to do. I don't need to demo that, I don't think another example of where people will customize the show message is sometimes they may not even want to prompt the user. They just want so instead of asking them if they want to sync on their first device, you can just comment this out and then you could set this last message choice to one. As if they had clicked, ok. And so you can suppress dialogues that way you can customize the dialogues you can put them in a different language. You can potentially log certain things that are happening. You can run whatever you want to do in your script. So that's the show message thing I inserted did update will delete those are all fairly straightforward.


You know, did insert means a record just got added, do you want to do anything you want to set some. Do you want to maybe clear some things out of it or set summaries or set some totals or just keep track of it in a log or something did update is the exact same thing. Except, we didn't add a new record. We modified an existing record and delete is something that we call when we have the record in our found set that we are about to delete. And then your script could take some action, for instance you might say omit this record and then there's nothing for us to delete. if you don't want that record to be deleted or you could you know create a global variable that says record such and such was deleted at such and such time by mirror sync so you can control that and then did sync is the opposite of will sync happens right once before the script runs and did sync happens once after the script runs.


So you can change all these things to control how this works but the one I want to get to where Nathan was asking a good question is the find changes section. If so and I think I showed this before, you could, if you use get account name you'll get the name again. This is really more applicable for client to server syncs. if they're on a mobile device so let's not think about server to service things here, if your client is running a sync you'll have their username their FileMaker logged in account name and you can use that to search by records. And you can search on related records too so you know if there's a project table and their name is assigned to then you can filter all only projects that are assigned to them.


But if there's a project to do table, you don't need to have their username as a field in that project to do table, you would just relate back to the project table and you would say, you know enter find mode and set the related project username to the current username and that would automatically also filter all of your related project to do items. But let's say, you want to have some arbitrary thing that's not their username, maybe you want to just sync a specific project that they pick when they sync or maybe you want to sync a certain number of days but you allow the user to pick if they want one day 7 days 30 days or 90 days, so you can't really tell that from the account name. So we give you one additional thing that you can set which is a double dollar sign mirror sync user token.


And that will be set to whatever it is on the mobile device. So if you're opening a script on your mobile device that sets mirror sync username to 30, then we could say you know the set field and I don't, I'm just making stuff up here but char product total equal to greater than your sync user token. And now it's only going to find records where the chart product total is greater than 30. And so that's what the merchant user token is for is a way for you to pass in anything that you want. You could even use json data to pass in like five different things.


So yeah anything that you pass in there will be available to your customization script and some examples of things that people have used that for is a user selecting a project from a list and so they've got a list of projects they pick a thing and then mirror sync will sync another table. But it'll set the user token to the ID of whichever project it picked. So that it will only get the records for that particular project which is going to be very efficient. And so that's an example of the kind of stuff you do with the user token, okay? Yeah, I do have a question here Delinsky's back A it's a kind of interest not a term I use too much here but he says the mirror sync worker script uses a few executed sql, I'm assuming commands has anyone experienced the file bloat bug reported on the community using fql which I think is FileMaker query language and table contains a container?


We don't do sql for containers, it's you can see how it works if you want to pick apart that worker script but basically the worker script it does. Okay that's not exactly true, we do containers but we only use the is it the get as function. I think it's either cast or get as I forget I just pasted his comment to you in slack. if you want to like look at that real quick, that way you can actually read it, because I don't want to like misinterpret what he said, so I'm not familiar with that particular thread about the bloat and the container issue but I will point out that when we do an execute sql. The only thing we're getting from the container is its name and we send that up with all of the non-container data


And then if mirror sync says, okay. Now give me that container value then we're going to that record doing a find and doing an insert from the url with the contents of that container as a http put operation. So I'm not sure if that addresses the bug or not Stephen, if you want to email me, I know you've got my address if you want to email me a link to that thread, i'll take a look at it and see if there looks like there's anything on there that would pertain to mirror sync. The question Ken Tully was asking some questions about implementation etc like that yeah Ken's got an interesting spot where he needs to do a little bit of container action using data API and it's not a necessarily inexpensive piece thing to do. He's had some questions, so if someone has questions about whether they should use your product or not, I mean okay, so Jesse let me be ready. Here comes a really big softball on three, ready. I'm gonna wind up, if someone has questions about how you can help them with 360works products, what should they do? Can they reach out to you? Yes, they definitely can send an email to support 360works.com. We've got I think like seven people that monitor that and so you should get a fairly quick answer to that, yeah. We have that's where we are we let our FileMaker coaches cut their teeth and they coach and then they also do tech support at the same time and they learn all the ins and outs and stuff.


So and then for those of you wonder, I think Jesse does the same thing. I was going to comment on this, I spend a good chunk of time doing tech support myself because I think it's valuable when the managers/CEO’s bosses of the world actually interact with the end customers and understand the questions they're asking. So that I know Jesse does that he's obviously directly at least half of my time is mirror sync support, Yeah, I spent a lot of my time in training and so I probably answer a quarter questions that come in. I would say that I think that's really useful so you can see the tempo and the pacing and what kind of things bother people.


That's why I could do the training because I already know what the questions are right. If I didn't know what the questions are i'd be really scared to come up here in front of you going, hi and I'm in from someone so company and I'm going to talk about tech support and people are like, hey how come the fql bug in the container doesn't bloat the file and explode it and Stephen Delinski shows up and this lights the guy on fire,right? And he's like I'm gonna let my technical helper here take over and he just walks off and has a coffee, right? So yeah, we eat our own dog food and we talk to customers. We're able to have that conversation.


Nathan's like there's also, oh here's another softball. Are you ready Jesse? Here comes the softball. Ready, one, two, three. Because there's also good resources for mirror sync on there which is hosted by Stephen Delinski. Yes, so Stephen Delinski, right here mirrors before, Yeah pretty awesome! I wanted to make sure everyone had the url for mirror sync. You can go to mirrorsync.com. It redirects you to the permanent url which is 360works.com. FileMaker - sync and do everything that I've been showing you guys and I mentioned it before but I want to mention it one more time.


You can do everything that I've been showing you for free on one device in a client to server environment so I think it would be, you know a really educational interesting exercise to download a copy of mirror sync. Install it on your FileMaker server. Run through the configuration with whatever solution you happen to be working on, right now and see how it works for a client to server sync. And if it works well for a client to server sync it's going to be the exact same setup process for server to servicing the screens are all the same so try that out that's completely free. If you decide that you would like to do a server to server sync send an email to support360works.com and just say, hey this is steven, i'd like to do a 30-day trial. Could you send that to me? I'll forward that to Warren who's our licensing manager and Warren will get you that 30-day trial license key for the server Lexi has a story just a short and we are wrapping up here folks.


Lexi Folger says 360work works once fixed a bug for me which I had falsely blamed on them. How awesome is that, right? So probably when she was at Claris or FileMaker at the time said, yeah 360work socks there's this bug then they went and fixed it. Well there don't there are n erorr cases where it is our fault, so we got lucky on that one but you know the thing is it's you know you can't ship bug-free software. But what you need to do is you need to react quickly when there's issues, so that's always our goal is to fix those issues as quickly as possible. This clapping for you doesn't just ignore the clapping. Thank you! So I tell people I'll remind you of that Richard. Next time you come you're puking down my throat. I only visit you when my team is feeling like they're not feeling the love.


And so, I just kind of let Jesse and I go, hey Jesse you in there? Hey, we gotta fix it. All right, cool! But yeah, no he's good with that. That's fine! All right, well, any other questions folks? We're gonna let this run for a little bit then later this afternoon we're gonna probably shut these servers down or their access to them will be limited. We're probably gonna let them run in a limited capacity for demos to show people who show that the enterprise is possible. That reminds me there was one guy that emailed me and I think he's probably on this call.

Okay, I hope I get his name right, I think it's Emilio and he told me that he's been listening to this and he uses mirror sync with client-to-server sinking for a huge was I don't remember if it was a cattle or a sheep ranch in Bolivia and he said they're like 500 miles away from decent working internet. I asked if that's an exaggeration but maybe it's not and so he built the FileMaker solution for them and then they used to only use it when they would come to the office but I guess when mirror sync came out, they started putting a distributed copy on. I guess I'll. I'm just using my imagination now, but I guess there's a bunch of people like on horseback or motorcycle or scooter or atv or whatever that go out and take care of these sheep and cattle.


And then they enter all their stuff into mirror sync and sync it up when they get back so I thought that was a really cool story! And Emilio, I looked at your website and I saw the pictures of your sheep and it was really cool man! Alright that's fine, only sound effects here are only the best sound effects for our people.


We've already had three explosions this morning, so I'm feeling pretty here this afternoon. I am pretty happy about that. So all right, well, any other final questions? But yeah, it's pretty awesome and then once again I want to go and point it out, so this is your special amazing discount deal for those who want 15 % off especially if it's like you know 1600 bucks.15% it's like you know enough for a good trip to a restaurant somewhere, anyway but yeah save some money on it or not or just come up and decide. Yeah I'm gonna write my own sync software, I don't need to spend 1600 bucks on it. I didn't mean to laugh. Oh sorry! No I'm laughing, I think it's funny like I said oh and then Kim Julie is Claris missing from the sheep of Amelia? okay, I don't yeah, oh Claris, yes sorry my bad this is Claris, my licensing expert Claris, thank you guys all for being this has been a ton of time and I'm sure your blood pressure's a day over five day.


It's really fun for me. I love to present this stuff the more questions I get, the more fun it is and I had a lot of really good questions that really made it enjoyable to me. And so I just want to say, thank you to everybody who has taken the time to sit in on this. And especially the people who ask questions during the presentation. Thank you very much!


Cool! Everyone, we'll catch you Monday next week for some more awesomeness. Appreciate seeing Alexis, some of the folks out there we'll catch you next time. Bye guys! Bye

Related Links About FileMaker Training- FileMaker Coaching


FileMaker Training - https://sites.google.com/view/fmtraining/


One on One FileMaker Coaching - https://sites.google.com/view/1-on-1-filemaker-coaching/


FileMaker 19 Training Review - https://sites.google.com/view/filemaker-19-training-review/


FileMaker Pro Training Review - https://sites.google.com/view/fm-training-review/


FileMaker Pro Video Training Review - https://sites.google.com/view/filemaker19/


FileMaker 19 Testimonials - https://sites.google.com/view/filemaker19testimonials/


Best FileMaker Deal - https://sites.google.com/view/best-deal-for-fm-training/


FileMaker For Beginners Training Review - https://sites.google.com/view/filemaker-for-beginners/


FileMaker Low Code/ No Code - https://sites.google.com/view/filemaker-low-code-no-code/


FileMaker Manual for Novices | Learn The FileMaker Platform | Video Training 50% off Coupon Inside - https://sites.google.com/view/filemaker-manual-for-novices/


FileMaker Pro Training Live - https://sites.google.com/view/fmpro19/


FileMaker Sync - Worldwide Replications and Offline Sync - Jesse Barnum - https://sites.google.com/view/filemaker-sync-replication/


Taking FileMaker to the Enterprise - https://sites.google.com/view/takingfilemakertotheenterprise/


Learn FileMaker With Coaching - https://sites.google.com/view/learn-fm-training/


Cheapest way to Learn FileMaker - https://sites.google.com/view/fmcheapesttraining/


FileMaker Coaching - https://sites.google.com/view/fm-coaching/


FileMaker Coaching for Beginners - https://sites.google.com/view/fm-coaching-for-beginners/


FileMaker Pro Coaching for Beginners - https://sites.google.com/view/fmprocoachingforbeginners/


FileMaker Pro Double Deal - https://sites.google.com/view/fm-pro-double-deal/


FileMaker Starting Point to the Enterprise - https://sites.google.com/view/fm-starting-point-enterprise/home


FileMaker Training - FileMaker Progression of Learning - https://sites.google.com/view/filemaker-progression-of-learn/



FileMaker Training - FileMaker Coaching Press Release Links


1. https://comprehensivenews.us/the-filemaker-progression-of-learn-filemaker-training/


2. https://pressroom.comprehensivenews.us/the-filemaker-progression-of-learning-filemaker-training/


3. https://newstopstories.com/2021/10/10/the-filemaker-progression-of-learning-filemaker-training/


4. https://machinelearninglatestnews.com/the-filemaker-progression-of-learning-filemaker-training/


5. https://mpboxingnews.com/the-filemaker-progression-of-learning-filemaker-training/


6. https://datinglatestnews.com/2021/10/10/the-filemaker-progression-of-learning-filemaker-training/


7. https://racingnewswire.net/the-filemaker-progression-of-learning-filemaker-training/


8. https://rmcnews.org/the-filemaker-progression-of-learning-filemaker-training/


9. https://trendnewsexpress.com/the-filemaker-progression-of-learning-filemaker-training/


10. https://unbiasdnews.com/the-filemaker-progression-of-learning-filemaker-training/


11. https://websiteseonews.com/2021/10/10/the-filemaker-progression-of-learning-filemaker-training/

12. https://trendnewsexpress.com/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/

13. https://newstopstories.com/2021/09/04/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


14. https://mpboxingnews.com/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


15. https://datinglatestnews.com/2021/09/04/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


16. https://comprehensivenews.us/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


17. https://websiteseonews.com/2021/09/04/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside-2/


18. https://racingnewswire.net/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside


19. https://rmcnews.org/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


20. https://unbiasdnews.com/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/


21. https://pressroom.comprehensivenews.us/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/

22. https://machinelearninglatestnews.com/filemaker-manual-for-novices-learn-the-filemaker-platform-video-training-50-off-coupon-inside/

Daily Open Q&A with FileMaker Experts. Questions about Installation, Upgrading, Purchasing or How to make FileMaker work for you in your company to increase ROI.

Get up to speed with the FileMaker Video Training Course!

Top Rated Course by FileMaker Expert, Richard Carlton.

http://fmtraining.tv/fmpro19.php

Video is an electronic medium for the recording, copying, playback, broadcasting, and display of moving visual media.

https://en.wikipedia.org/wiki/Video

FileMaker is a cross-platform relational database application from FileMaker Inc.

https://en.wikipedia.org/wiki/FileMaker

Customer relationship management, processes implemented to manage a company's interactions with customers and prospects

https://en.wikipedia.org/wiki/CRM

Experience Richard's dynamic and exciting teaching format, while learning both basic, intermediate, and advanced FileMaker development skills. With 30 years of FileMaker experience and a long time speaker at FileMaker's Developer Conference, Richard will teach you all the ins and outs of building FileMaker Solutions.

The course is 60 hours of video content! Transform your business with the FileMaker Platform

Richard has been involved with the FileMaker platform since 1990 and has grown RCC into one of the largest top tier FileMaker consultancies worldwide.

Richard works closely with RCC's staff: a team of 30 FileMaker developers and supporting web designers. He has offices in California, Nevada, and Texas.

Richard has been a frequent speaker at the FileMaker Developers Conference on a variety of topics involving FileMaker for Startups and Entrepreneurs, and client-server integration.

Richard is the Product Manager for FM Starting Point, the popular and most downloaded free FileMaker CRM Starter Solution.


Looking for FM Starting Point free software download: http://www.fmstartingpoint.com

FMTraining.TV

2122 9th St., Suite 102

Los Osos, CA 93402

(805) 946-6552

https://fmtraining.tv/

FileMaker Pro is a simply powerful software used to create custom apps that work seamlessly across iPad, iPhone, Windows, Mac, and the web

Free FileMaker Training Videos Channel https://www.youtube.com/user/FileMakerVideos

FileMaker 19 Video Training Course Introduction-FileMaker 19 News-Learn FileMaker From The Experts

https://youtu.be/oszJcgSjxJE

https://www.youtube.com/watch?v=oszJcgSjxJEu0026list=PLjTvUZtwtgBTCbN3Sr7yn6weIyIofDoMLu0026index=2u0026t=1s

FileMaker 19 New Release - Top 10 Need To Know Items in FileMaker 19 - FileMaker Top Ten News

https://youtube.com/watch?v=kRDXfpMrjvM

https://www.youtube.com/watch?v=kRDXfpMrjvMu0026list=PLjTvUZtwtgBQ_rHl8G-LP4gSVl7mvO-Zqu0026index=2u0026t=0s

FileMaker Purchasing Options-FileMaker Training-Best Way To Purchase FileMaker 19-FileMaker 19 Video

https://www.youtube.com/watch?v=LlZqf_8N1Ho

https://www.youtube.com/watch?v=LlZqf_8N1Hou0026list=PLjTvUZtwtgBTCbN3Sr7yn6weIyIofDoMLu0026index=3

A database management system (DBMS) is a computer software application that interacts with the user, other applications, and the database itself to capture and analyze data

Video introduction to iOS App Training https://www.youtube.com/watch?v=cVxQe_yAshw

Free FileMaker videos check out ...http://www.filemakervideos.com

Download the FileMaker Pro and FileMaker GO for mobile devices training videos at http://www.fmtraining.tv

Download FileMaker Go video training at https://fmtraining.tv/fmgo19.php

Download FileMaker Full Video Training Bundle at https://fmtraining.tv/subscription.php

Learn how to use FileMaker to create an app with the FileMaker Training Series

Comment, Like and Share All of Our Videos.

Feel Free to Embed any of Our Videos on Your Blog or Website.


Follow Us on Your Favorite Social Media

https://www.facebook.com/FileMakerVideos

https://twitter.com/filemakervideos


Join us for live training on Twitch daily at 1pm Pacific

https://www.twitch.tv/fmtraining


https://fmcoachescorner.com/

https://www.youtube.com/user/FileMakerVideos

https://www.filemakervideos.com/

https://fmstartingpoint.com/

https://fmstartingpoint.com/downloadform3.php

Download FM Starting Point

https://filemakerfree.com/

https://filemakerfree.com/signup.html

FileMaker 17 manual For Novises kindle

https://www.amazon.com/FileMaker-17-Manual-Novices-ebook/dp/B07D952V1W/ref=sr_1_1?dchild=1&keywords=FileMaker+Book+for+Novices&qid=1604344406&sr=8-1

https://rcconsulting.com/courses.html

https://www.guidetofilemaker.com/

Blogger sites

https://fmtrainingtv.blogspot.com/

WordPress sites

https://fmtrainingtv.wordpress.com/


FileMaker Press Release Links